GNU bug report logs - #43736
The local-file()'s error message is misleading.

Previous Next

Package: guix;

Reported by: "Vitaliy Shatrov" <guix.vits <at> disroot.org>

Date: Thu, 1 Oct 2020 04:57:01 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 43736-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: "Vitaliy Shatrov" <guix.vits <at> disroot.org>
Cc: 43736-done <at> debbugs.gnu.org
Subject: Re: bug#43736: The local-file()'s error message is misleading.
Date: Fri, 02 Oct 2020 08:14:56 +0200
Hi,

"Vitaliy Shatrov" <guix.vits <at> disroot.org> skribis:

> ;; (define (custom-local-file str)              ; shorthand, preserves permissions
> ;;   (let* ((file (local-file str #:recursive? #t))
> ;;       (dir (dirname (local-file-absolute-file-name file))))
> ;;     (display (string-append "loading local file '" str "' from " dir "...\n"))
> ;;     file))

[...]

> ;;      (auto-login (custom-local-file "auto-login"))
> ;;      (syslog.conf (custom-local-file "syslog.conf")))

This will not have the desired effect.  ‘local-file’ is special syntax:
it captures the source directory so that at run time it can resolve file
names relative to the source directory.

The ‘custom-local-file’ procedure does not do that.  Consequently, file
names get resolved relative to $PWD instead.

Commit f43ffee90882c2d61b46d69728daa7432be297e4 improves on that by
emitting a warning at run time when ‘local-file’ is passed a non-literal
relative file name.

Thanks,
Ludo’.




This bug report was last modified 4 years and 230 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.