Subject: bug#20081: patch-source-shebangs crashes on broken symlink

From: [email-masked] (Ludovic Courtès)
Date: Thu, 12 Mar 2015 10:30:55 +0100

Tomáš Čech <[email-masked]> skribis:

> On Wed, Mar 11, 2015 at 06:32:30PM +0100, Andreas Enge wrote:
>>On Wed, Mar 11, 2015 at 04:02:11PM +0100, Tomáš Čech wrote:
>>> I'm trying to create package for taskwarrior.
>>> Source tarball contain symlinks to nonexisting file `task':
>>
>>I would argue that this is not a bug in guix, but in the tarball.
>>You can remove the link with an additional phase before 'configure, see, for
>>instance, the dvdisaster package in cdrom.scm.
>
> I agree with you that the fishy part is in tarball, but we could make
> build more robust. Getting backtrace is not nice way to end a build.

I agree.  I think we should patch ‘find-files’ in core-updates to not
follow symlinks:

diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index a5a6167..9cbddcd 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -288,7 +288,8 @@ matches REGEXP."
                                     file (strerror errno))
                             result)
                           '()
-                          dir)
+                          dir
+                          lstat)
         string<?))
 
 

Thoughts?

Thanks,
Ludo’.