Luis Henrique Gomes Higino wrote 3 years ago
(address . bug-guix@gnu.org)
Hi,
the example present in the 11.1 section of the guix manual ((guix)
Declaring the Home Environment) uses a list of strings in the
bash-profile field of home-bash-configuration, which is incorrect,
as it
expects a list of file-like objects.
The example is as follows:
(use-modules (gnu home)
(gnu home services)
(gnu home services shells)
(gnu services)
(gnu packages admin)
(guix gexp))
(home-environment
(packages (list htop))
(services
(list
(service home-bash-service-type
(home-bash-configuration
(guix-defaults? #t)
(bash-profile '("\
export HISTFILE=$XDG_CACHE_HOME/.bash_history"))))
(simple-service 'test-config
home-files-service-type
(list `("config/test.conf"
,(plain-file "tmp-file.txt"
"the content of
~/.config/test.conf")))))))
Running "guix home build" with a file containing this returns this
error:
building
/gnu/store/cvmpzmvb0p73dvbf813rcmpplj6fnbk8-bash_profile.drv...
Backtrace:
8 (primitive-load
"/gnu/store/w6nikzvdk66d1b8x579ra0vz0wl?")
In ice-9/ports.scm:
463:17 7 (call-with-output-file _ _ #:binary _ #:encoding _)
In ice-9/eval.scm:
159:9 6 (_ #(#(#<directory (guile-user) 7ffff3bb3f00>)
#<outp?>))
163:9 5 (_ #(#(#<directory (guile-user) 7ffff3bb3f00>)
#<outp?>))
155:9 4 (_ #(#(#<directory (guile-user) 7ffff3bb3f00>)
#<outp?>))
159:9 3 (_ #(#(#<directory (guile-user) 7ffff3bb3f00>)
#<outp?>))
In ice-9/boot-9.scm:
152:2 2 (with-fluid* _ _ _)
In ice-9/ports.scm:
440:11 1 (call-with-input-file " export
HISTFILE=$XDG_CACHE?" ?)
In unknown file:
0 (open-file " export
HISTFILE=$XDG_CACHE_HOME/.bash?" ?)
ERROR: In procedure open-file:
In procedure open-file: No such file or directory: " export
HISTFILE=$XDG_CACHE_HOME/.bash_history"
builder for
`/gnu/store/cvmpzmvb0p73dvbf813rcmpplj6fnbk8-bash_profile.drv'
failed with exit code 1
I believe it should be changed to something like this:
(use-modules (gnu home)
(gnu home services)
(gnu home services shells)
(gnu services)
(gnu packages admin)
(guix gexp))
(home-environment
(packages (list htop))
(services
(list
(service home-bash-service-type
(home-bash-configuration
(guix-defaults? #t)
(bash-profile (list (plain-file "bash-profile" "\
export HISTFILE=$XDG_CACHE_HOME/.bash_history")))))
(simple-service 'test-config
home-files-service-type
(list `("config/test.conf"
,(plain-file "tmp-file.txt"
"the content of
~/.config/test.conf")))))))
This manages to build correctly.
Greetings,
Luis
--
Luis H. Higino