Subject: [bug#72867] [PATCH v5] gexp: Make 'local-file' follow symlinks.

From: "pelzflorian (Florian Pelz)" <[email-masked]>
Date: Wed, 25 Sep 2024 07:16:45 +0200

Hello Nigko.

diff --git a/etc/news.scm b/etc/news.scm
index a90f92a9ff..5a32eee7f5 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -33,6 +33,18 @@
 (channel-news
  (version 0)
 
+ (entry (commit "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
+        (title
+         (en "local-file behaves consistently for symlinks"))
+        (body
+         (en "Previous behavior differed between whether someone
+loaded the symlink or the actual scheme file.  One of them had to be
+broken, at least when loading a channel module.
+
+Affected users who expected paths relative to the symlink would need
+to append "/../.." or similar or the relative path to the “real” file
+the symlink points to to the path.")))
+
  (entry (commit "2fae63df2138b74d30e120364f0f272871595862")
         (title
          (en "Core packages updated")

They would not have to write code like `current-source-directory'.

Also note that such affected users had broken code when running the
real file.

`local-file' with absolute paths always did `(canonicalize-path (dirname`
and does not change.
`dirname' being called in a special case of `current-source-directory',
`canonicalize-path' as part of `absolute-file-name'.

Could we finish this bug report by applying your nice test code, but
changing only `absolute-dirname' to do (canonicalize-path (dirname))
in all cases?

Then either add no news item, or write the above?

Regards,
Florian