guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] gnu-build-system: do not patch symlinks. Fixes location-aware sc


From: Jan Nieuwenhuizen
Subject: [PATCH] gnu-build-system: do not patch symlinks. Fixes location-aware scripts.
Date: Sat, 06 Feb 2016 18:26:03 +0100

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 <address@hidden>
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 <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

reply via email to

[Prev in Thread] Current Thread [Next in Thread]