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

From: Tomáš Čech <[email-masked]>
Date: Thu, 12 Mar 2015 10:36:33 +0100

On Thu, Mar 12, 2015 at 10:30:55AM +0100, Ludovic Courtès wrote:
>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:
>

>[1;32mdiff --git a/guix/build/utils.scm b/guix/build/utils.scm[0;0m
>[0;0mindex a5a6167..9cbddcd 100644[0;0m
>[1;31m--- a/guix/build/utils.scm[0;0m
>[1;34m+++ b/guix/build/utils.scm[0;0m
>[1;35m@@ -288,7 +288,8 @@ matches REGEXP."[0;0m
>[0;0m                                     file (strerror errno))[0;0m
>[0;0m                             result)[0;0m
>[0;0m                           '()[0;0m
>[1;31m-                          dir)[0;0m
>[1;34m+                          dir[0;0m
>[1;34m+                          lstat)[0;0m
>[0;0m         string<?))[0;0m
>[0;0m [0;0m
>[0;0m [0;0m

>Thoughts?

Ignoring symlinks is nice solution.
I'd add comment:

We won't touch broken symlinks, symlinks pointing within the sources will be
fixed anyway.

Thanks!

S_W