Howdy! Hartmut Goebel <h.goe...@crazy-compilers.com> skribis:
> when defining a new package, I often find myself spending *a lot* of > time debugging and tweaking the build. E.g. the if the Makefile needs to > be modified, or some test-cases adjusted. > > How do I "get into" the build container, so I can debug, modify files, > rebuild and run tests there - in a closed environment (nearly) like the > build-daemon has? Most of the time, you don’t need to get into a container. In those cases, it’s enough to do: guix build -K foo # build fails… cd /tmp/guix-build-foo.drv-0 source ./environment-variables cd foo-1.2 … In some cases (for example when you have tests that fail in the build environment but succeed once you’ve followed the steps above), you really need a container similar to that created by guix-daemon. In that case, do: guix build -K foo # build fails… cd /tmp/guix-build-foo.drv-0 guix environment -C foo --ad-hoc strace gdb rm /bin/sh # to be really like in the guix-daemon environment source ./environment-variables cd foo-1.2 $GUIX_ENVIRONMENT/bin/strace -f -o log make check … That would probably make a good “Debugging Build Failures” section. Thoughts? Ludo’.