Hi, When patch-shebang encounters a script that is a symlink, say
bin/script -> ../lib/foo/thescript it will change it into a file with rewritten #! . That breaks whenever `thescript' assumes it lives in lib/foo. Attached is a patch that has patch-shebangs skip symlinks. Greetings, Jan
>From 5a1793944b6ba1368a355edfa5be1b5c542ba48c Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen <jann...@gnu.org> Date: Sat, 6 Feb 2016 15:59:51 +0100 Subject: [PATCH] gnu-build-system: do not patch symlinks. Fixes location-aware scripts. * guix/build/gnu-build-system.scm (patch-shebangs): avoid patching symlinks. Fixes scripts --- guix/build/gnu-build-system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 2abaa6e..34edff7 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -303,7 +303,7 @@ makefiles." (define (list-of-files dir) (map (cut string-append dir "/" <>) (or (scandir dir (lambda (f) - (let ((s (stat (string-append dir "/" f)))) + (let ((s (lstat (string-append dir "/" f)))) (eq? 'regular (stat:type s))))) '()))) -- 2.1.4
-- Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.nl