emacs-bug-tracker
[Top][All Lists]
Advanced

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

bug#43736: closed (The local-file()'s error message is misleading.)


From: GNU bug Tracking System
Subject: bug#43736: closed (The local-file()'s error message is misleading.)
Date: Fri, 02 Oct 2020 06:16:02 +0000

Your message dated Fri, 02 Oct 2020 08:14:56 +0200
with message-id <87zh55kvbz.fsf@inria.fr>
and subject line Re: bug#43736: The local-file()'s error message is misleading.
has caused the debbugs.gnu.org bug report #43736,
regarding The local-file()'s error message is misleading.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
43736: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=43736
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: The local-file()'s error message is misleading. Date: Thu, 01 Oct 2020 04:56:08 +0000
Hello there.
I ran in bash shell:



pwd
--> /home/vits

conf=~/guix/configuration/configuration.scm

ls $conf   # file exists
--> ~/guix/configuration/configuration.scm

guix system build $conf
--> guix system: error: failed to load
'/home/vits/guix/configuration/configuration.scm': No such file or directory



The commands above will result in a successfull build if i
`cd guix/configuration` before doing `guix system build`
(both with rel. and abs. names).

Attached is WORKING config.scm.  Error was caused by local-file()
used with _relative_ paths.  Those were commented out, and this
config.scm works from any directory.

#guix:
> ... error message is very misleading.

Better of course if the offending file will be print out:
"failed to load (...) /home/vits/auto-login:  no such file or directory"

---
Thanks for attention, Vitaliy.

Attachment: config.scm
Description: Binary data


--- End Message ---
--- Begin Message --- Subject: Re: bug#43736: The local-file()'s error message is misleading. Date: Fri, 02 Oct 2020 08:14:56 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Hi,

"Vitaliy Shatrov" <guix.vits@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’.


--- End Message ---

reply via email to

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