Subject: bug#31956: guix environment: add option to download and unpack source

From: Danny Milosavljevic <[email-masked]>
Date: Sun, 24 Jun 2018 21:27:27 +0200

Hi Vagrant,

On Sun, 24 Jun 2018 12:06:17 -0700
Vagrant Cascadian <[email-masked]> wrote:

> It would be great if there were an option you could pass that downloads
> and unpacks the source somewhere and drops you into the newly unpacked
> source directory.
> 
> Not sure what to call it exactly, but something like:
> 
>   guix environment --with-source hello

+1

Right now, my silly workaround is to add a phase which fails

  (add-after 'unpack 'fail
    (lambda _
      (error "stop it")))

and then do

  guix build --keep-failed hello

and then do

  guix environment --pure hello
  cd /tmp/guix-build-hello*

That's... very manual.

Also, if the directory in /tmp is not .drv-0, the environment is technically not the same as it was inside the guix-daemon build container.

In that case there'd be an extra step

  rm -rf /tmp/guix-build-hello-*.drv-0
  ln -s /tmp/guix-build-hello-* /tmp/guix-build-hello-<...>.drv-0
  cd /tmp/guix-build-hello-<...>.drv-0

All in all that's not simple.

Also, guix-daemon is taken from Nix and thus not exactly the same as
guix environment in some cases.

That's why in some cases I have to (edit the package definition and
invoke guix build) over and over again in order to find a problem.

In the long term we'll replace guix-daemon by guix environment.
Much easier to reproduce situations then.