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

From: Efraim Flashner <[email-masked]>
Date: Wed, 21 Nov 2018 15:22:13 +0200

On Tue, Feb 07, 2017 at 02:18:14PM +0000, Efraim Flashner wrote:
> 
> 
> On February 7, 2017 4:08:06 PM GMT+02:00, [email-masked] wrote:
> >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?
> >
> 
> I dont feel strongly about it, but it would be more consistent if it were inside a bin directory. We'd have to change the few places that we call waf and substitute the one we have packaged.
> 
> >The second thing is a bug in ‘guix environment’.  It should not
> >manifest
> >itself normally, but it’s worth fixing.
> >
> >Thanks,
> >Ludo’.
> 

Only took 21 months but 'guix environment mpv' now works.
Fix pushed in a2aa746cfe38076b87d9cde2252904c0bddd9f9e.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted