GNU bug report logs -
#43736
The local-file()'s error message is misleading.
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Fri, 02 Oct 2020 08:14:56 +0200
with message-id <87zh55kvbz.fsf <at> 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 <at> gnu.org.)
--
43736: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=43736
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
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.
[config.scm (application/octet-stream, attachment)]
[Message part 5 (message/rfc822, inline)]
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 229 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.