Subject: patch-source-shebangs crashes on broken symlink

From: Tomáš Čech <[email-masked]>
Date: Wed, 11 Mar 2015 16:02:11 +0100

I'm trying to create package for taskwarrior.

Source tarball contain symlinks to nonexisting file `task':

$ tar tvf /gnu/store/*-task*.tar.gz | grep -E '/src/(tw|cal |calendar|task)'
lrwxr-xr-x ultrafredde/staff      0 2015-02-16 23:45 task-2.4.1/src/cal -> task
lrwxr-xr-x ultrafredde/staff      0 2015-02-16 23:45 task-2.4.1/src/calendar -> task
lrwxr-xr-x ultrafredde/staff      0 2015-02-16 23:45 task-2.4.1/src/tw -> task

When I run build, I got this backtrace:

phase `unpack' succeeded after 0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0 seconds
starting phase `patch-source-shebangs'
Backtrace:
In ice-9/boot-9.scm:
  157: 15 [catch #t #<catch-closure f65740> ...]
In unknown file:
    ?: 14 [apply-smob/1 #<catch-closure f65740>]
In ice-9/boot-9.scm:
   63: 13 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
  432: 12 [eval # #]
In ice-9/boot-9.scm:
2401: 11 [save-module-excursion #<procedure f82880 at ice-9/boot-9.scm:4045:3 ()>]
4050: 10 [#<procedure f82880 at ice-9/boot-9.scm:4045:3 ()>]
1724: 9 [%start-stack load-stack #<procedure f959a0 at ice-9/boot-9.scm:4041:10 ()>]
1729: 8 [#<procedure f97c60 ()>]
In unknown file:
    ?: 7 [primitive-load "/gnu/store/ix1s7q448frw02wy9xvzhd66vh08lxcw-taskwarrior-2.4.1-guile-builder"]
In ice-9/eval.scm:
  387: 6 [eval # ()]
In srfi/srfi-1.scm:
  830: 5 [every1 #<procedure 12eb680 at /gnu/store/dyv4k9p9na96q4yzahdlvij3nadaz65h-module-import/guix/build/gnu-build-system.scm:507:9 (expr)> ...]
In /gnu/store/dyv4k9p9na96q4yzahdlvij3nadaz65h-module-import/guix/build/gnu-build-system.scm:
  511: 4 [#<procedure 12eb680 at /gnu/store/dyv4k9p9na96q4yzahdlvij3nadaz65h-module-import/guix/build/gnu-build-system.scm:507:9 (expr)> #]
  164: 3 [patch-source-shebangs # ...]
In unknown file:
    ?: 2 [remove #<procedure ee4d60 at ice-9/boot-9.scm:1460:6 (str)> #]
In ice-9/boot-9.scm:
1461: 1 [#<procedure ee4d60 at ice-9/boot-9.scm:1460:6 (str)> "./src/cal"]
  In unknown file:
    ?: 0 [stat "./src/cal" #<undefined>]

ERROR: In procedure stat:
ERROR: In procedure stat: No such file or directory: "./src/cal"
builder for `/gnu/store/vr408ijifflkqjk9lgpj3sv469fj2pik-taskwarrior-2.4.1.drv' failed with exit code 1
cannot build derivation `/gnu/store/367g51d6vh8v5m1q58hls6bn40ha1262-profile.drv': 1 dependencies couldn't be built
guix package: error: build failed: build of `/gnu/store/367g51d6vh8v5m1q58hls6bn40ha1262-profile.drv' failed