Subject: Re: bug#73275: ‘with-imported-modules’fails to cope with dangling symlinks
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Mon, 16 Sep 2024 00:26:05 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Ludovic Courtès <[email-masked]> skribis:

> $ guix shell -CWP guile guix -- guile imported-modules-dangling-symlink.scm
> ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
> ;;;       or pass the --no-auto-compile argument to disable.
> ;;; compiling /home/ludo/src/guix-debugging/imported-modules-dangling-symlink.scm
> ;;; compiled /home/ludo/.cache/guile/ccache/3.0-LE-8-4.7/home/ludo/src/guix-debugging/imported-modules-dangling-symlink.scm.go
>
> ;;; (symlink)
>
> ;;; (drv #<derivation /gnu/store/8r2vh6x599i82gf9rphfxldaiyr67glq-bar.scm.drv => /gnu/store/a1sz94kb0h1n0k238w49bw4zdrrhml6h-bar.scm 7fce7f287640>)
> building path(s) `/gnu/store/qmxv9mavj48jmqb3x4ayq2a2q948kd40-module-import-compiled'
> [ 1/ 4] Loading './foo.scm'...
> Backtrace:
>            6 (primitive-load "/gnu/store/9c5vjhqsjxkg5fvaxhxz14w6ms3?")
> In ice-9/eval.scm:
>     619:8  5 (_ #f)
> In srfi/srfi-1.scm:
>    460:18  4 (fold #<procedure 7ffff5f2a9a0 at ice-9/eval.scm:336:1?> ?)
>    460:18  3 (fold #<procedure 7ffff5f41c60 at ice-9/eval.scm:336:1?> ?)
> In ice-9/eval.scm:
>    245:16  2 (_ #(#(#<directory (guix build utils) 7ffff7746320>) # ?))
> In ice-9/boot-9.scm:
>   1982:24  1 (_ _)
> In unknown file:
>            0 (stat "./guix/base16.scm" #<undefined>)
>
> ERROR: In procedure stat:
> In procedure stat: No such file or directory: "./guix/base16.scm"
> builder for `/gnu/store/f3w43lq1wfq35dym2r48sav22x4l88dh-module-import-compiled.drv' failed with exit code 1

Fixed in a7bb45b39d7d698e0868c2b3ac9097b70ef9d401.

The trick is that ‘imported-files/derivation’ should copy files instead
of symlinking them.  As noted in the commit log, I believe this was the
original intent but due to a typo it did not work that way.

Ludo’.