If $XDG_DATA_DIRS is unset, default value of "/usr/local/share:/usr/share"
is used according to XDG Base Directory Specification. However,
/etc/profile.d/guix.sh treats this value as empty list when appending its
own directory, so after installing Guix on the system, launchers such
as Rofi stop searching for .desktop files in /usr/share/applications/
and can't launch applications other than those installed with Guix.
This patch fixes the bug in generated /etc/profile.d/guix.sh
* etc/guix-install.sh (sys_create_init_profile): Use default value of
/usr/local/share:/usr/share/ before appending if $XDG_DATA_DIRS is not
set.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* etc/guix-install.sh (sys_create_init_profile): Add code to create
/etc/profile.d if it somehow does not exist; the function still carries
on because it is possible that /etc/profile is still configured to read
the *.sh files from /etc/profile.d, if they exist.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* etc/guix-install.sh (sys_create_init_profile): Export INFOPATH to include
the updated info-pages from ~/.config/guix/current/share/info. This also makes
sure that both /usr/bin/info and $GUIX_PROFILE/bin/info can read guix info pages
without throwing "no menu item 'guix' in node dir(Top)" error.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Create an init profile (/etc/profile.d/guix.sh) during installation for
better integration with foreign distros. This file, read by login-shells
sets a few environment variables (PATH, GUIX_PROFILE, GUIX_LOCALE, along
with XDG_DATA_DIRS) and makes guix-installed packages readily available
for the users. Other environment variables, as listed by `guix package
--search-paths=prefix`, are also exported.
Checks are in place to prevent the init profile from needlessly polluting
the user's environment.
* etc/guix-install.sh (sys_create_init_profile): New function to create
/etc/profile.d/guix.sh init profile.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Users with strict umasks (e.g. 0077) would end up with an unreadable
/gnu (mode 0700) and no way to run guix.
Reported by A. <@aaap:matrix.org> on #guix.
* etc/guix-install.sh (main): Set umask before installing anything.
This is a followup to bc69ea2d60.
* guix/scripts/build.scm (show-build-options-help): Rename
"--no-build-hook" to "--no-offload".
(%standard-build-options): Likewise, and warn when "--no-build-hook" is
passed.
* nix/nix-daemon/guix-daemon.cc (options): Add "--no-offload" and mark
"--no-build-hook" as hidden.
* guix/scripts/offload.scm: Adjust comment.
* doc/guix.texi (Invoking guix-daemon, Common Build Options): Replace
"--no-build-hook" with "--no-offload".
* etc/completion/fish/guix.fish, etc/completion/zsh/_guix: Adjust
accordingly.
Don't flatten it into a string only to split it again later.
* etc/guix-install.sh (chk_require): Iterate over array elements, not
string tokens.
(main): Pass $REQUIRE as an array of arguments.