Subject: Re: bug#25634: 'guix environment mpv' fails to handle '/gnu/store/i1139n4ab0fn9v4bwkvqzp6sw3w66mqr-python-waf-1.9.5' file (not-a-dir)

From: [email-masked] (Ludovic Courtès)
Date: Tue, 07 Feb 2017 15:08:06 +0100

Hi,

Sergei Trofimovich <[email-masked]> skribis:

> It looks like 'guix environment' does not handles derivations-as-files.
> I don't know if it's a bug in the package or 'guix environment':
>
> $ ls -l /gnu/store/i1139n4ab0fn9v4bwkvqzp6sw3w66mqr-python-waf-1.9.5
> -r-xr-xr-x 2 root root 99280 Jan  1  1970 /gnu/store/i1139n4ab0fn9v4bwkvqzp6sw3w66mqr-python-waf-1.9.5
>
> $ ./pre-inst-env guix environment mpv
> The following derivation will be built:
>    /gnu/store/b5ph69m9z0qgwkf1w1p39r3wyab6x4hi-profile.drv
> Backtrace:
> In ice-9/boot-9.scm:
>  160: 14 [catch #t #<catch-closure 8cad00> ...]
> In unknown file:
>    ?: 13 [apply-smob/1 #<catch-closure 8cad00>]
> In ice-9/boot-9.scm:
>   66: 12 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 11 [eval # #]
> In ice-9/boot-9.scm:
> 2404: 10 [save-module-excursion #<procedure 8ea7c0 at ice-9/boot-9.scm:4051:3 ()>]
> 4056: 9 [#<procedure 8ea7c0 at ice-9/boot-9.scm:4051:3 ()>]
> 1727: 8 [%start-stack load-stack #<procedure 8fcba0 at ice-9/boot-9.scm:4047:10 ()>]
> 1732: 7 [#<procedure 8fd6f0 ()>]
> In unknown file:
>    ?: 6 [primitive-load "/gnu/store/yax60hx75hyarsfpraplhhfhkaqs30ia-profile-builder"]
> In ./guix/build/profiles.scm:
>  133: 5 [build-profile "/gnu/store/dd9fznm75rdjkdhb4zqz67lvr8d1ya5d-profile" # ...]
> In ./guix/build/union.scm:
>  136: 4 [union-of-directories "/gnu/store/dd9fznm75rdjkdhb4zqz67lvr8d1ya5d-profile" ...]
> In srfi/srfi-1.scm:
>  613: 3 [for-each #<procedure a86c80 at ./guix/build/union.scm:136:16 (dir)> #]
> In ./guix/build/union.scm:
>  138: 2 [#<procedure a86c80 at ./guix/build/union.scm:136:16 (dir)> "/gnu/store/i1139n4ab0fn9v4bwkvqzp6sw3w66mqr-python-waf-1.9.5"]
>   37: 1 [files-in-directory "/gnu/store/i1139n4ab0fn9v4bwkvqzp6sw3w66mqr-python-waf-1.9.5"]
> In unknown file:
>    ?: 0 [opendir "/gnu/store/i1139n4ab0fn9v4bwkvqzp6sw3w66mqr-python-waf-1.9.5"]
>
> ERROR: In procedure opendir:
> ERROR: In procedure opendir: Not a directory

I think you’re right: there are 2 bugs here.  :-)

Packages should definitely produce a directory, not a flat file.  In
this case, the package should be a directory containing ‘bin/waf’ I
think.  宋文武 & Efraim, WDYT?

The second thing is a bug in ‘guix environment’.  It should not manifest
itself normally, but it’s worth fixing.

Thanks,
Ludo’.