Jelle Licht skribis: > Ludovic Courtès writes: >> Hello! >> >> Jelle Licht skribis: >> >>> It seems that the patch-shebang functionality does not deal gracefully >>> with symlinks: it just overwrites them! >>> >>> After struggling somewhat with getting the recently packaged node 6.0.0 >>> to behave, I found out that `patch-shebang' in (guix build >>> gnu-build-system) does not work properly on symlinks. >> >> There’s ‘patch-shebangs’ (plural) in this file, but it explicitly >> touches only regular files (see ‘list-of-files’). >> > > It seems I made a mistake when writing the bug report; I am talking > about the `patch-shebang' defined in (guix build utils). My apologies. > > Also, seeing as my experience with the stat utility and similarly styled > programming libraries was lacking, I decided to play around with the > definition of `list-of-files': It actually does include symlinks, as > (stat:type (stat "some-symlinked-file")) gives us a plain old 'regular. > Looking into this a bit more, it seems that calling `stat' gives the > exact same results on both the linked-to-file and the symlink to that > file. > > For the particular problem I ran into to be fixed, it is imperative that > `list-of-files' of `patch-shebangs' includes the symlink; it does after > all need to be patched. The way this patching currently happens just > clobbers symlinks. My bad, indeed, ‘list-of-files’ should use ‘lstat’ instead of ‘stat’. I think a patch like attached should solve the problem. WDYT? We can apply it to core-updates-next if that’s fine with you. Thanks, Ludo’.