summary refs log tree commit diff
path: root/etc/guix-install.sh
AgeCommit message (Collapse)Author
2021-05-05guix-install.sh: Exit early if Guix is already installed.Maxim Cournoyer
* etc/guix-install.sh (sys_create_store): Move the check & exit before The Guix binary archive is unpacked. Re-indent tar extraction command.
2021-05-05guix-install.sh: Propose automatically fetching OpenPGP keys.Maxim Cournoyer
Via, for example, yes | ./guix-install.sh. * etc/guix-install.sh (prompt_yes_no): New procedure. (chk_gpg_keyring, sys_authorize_build_farms): Use it.
2021-05-05guix-install.sh: Please the shellcheck linter.Maxim Cournoyer
* etc/guix-install.sh <FUNCNAME>: Explicitly refer to the first item of the FUNCNAME array. (ROOT_HOME): Replace variable by ~root directly; manually expanding it via echo was not necessary. (chk_gpg_keyring): Use an if branch for the exit to avoid a warning about expression precedence. (chk_term) <ansi_term>: Remove unused variable. (guix_get_bin) <wget, gpg>: Test the commands directly. Use an array for the wget arguments, which can then be properly expanded. (sys_create_store): Disable SC1090 for the source command, as we don't care about following the sourced script. <_msg>: Reuse the GUIX_PROFILE variable in the message. (sys_create_build_user) <getent>: Test the command directly.
2021-05-01guix-install.sh: Add support for more than one signing key.Maxim Cournoyer
The forthcoming 1.3.0 release will be signed with my personal GnuPG key; the installation script need to tell users how fetch it. * etc/guix-install.sh (OPENPGP_SIGNING_KEY_ID): Remove variable. (GPG_SIGNING_KEYS): New associative array. (chk_gpg_keyring): Process all the keys contained in the above array. (main) <GUIX_BINARY_FILE_NAME>: Double quote variable.
2021-04-29guix-install.sh: Ensure GUIX_BINARY_FILE_NAME is an absolute path.Maxim Cournoyer
This is necessary as the directory context is changed in the script, breaking the use of a relative path. * etc/guix-install.sh (main) <GUIX_BINARY_FILE_NAME>: Resolve its absolute path via the 'realpath' command.
2021-04-24guix-install.sh: Allow overriding the Guix binary source.Maxim Cournoyer
This is useful for example for testing release candidates not yet uploaded to the FTP, or for testing manually downloaded images from the CI. * etc/guix-install.sh (main)[GUIX_BINARY_FILE_NAME]: When this variable is defined, use it as the file name of a Guix binary, instead of automatically retrieving the latest archive from the FTP.
2021-04-14guix-install.sh: Add the build users to the 'kvm' group.Leo Famulari
Fixes <https://bugs.gnu.org/42129>. * etc/guix-install.sh (sys_create_build_user): If a 'kvm' group exists, add it to the guixbuilders' lists of supplementary groups.
2021-03-23Add powerpc64le-linux as a supported Guix architecture.Chris Marusich
This makes powerpc64le-linux a supported architecture for Guix, but not for Guix System. * Makefile.am (SUPPORTED_SYSTEMS): Add an entry for powerpc64le-linux. * etc/guix-install.sh (chk_sys_arch): Same. * guix/packages.scm (%supported-systems): Same. * m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): Same. * tests/guix-build.sh (all_systems): Same.
2021-01-03/etc/profile.d/guix.sh: Add guix pull profile even when absentJakub Kądziołka
* etc/guix-install.sh (sys_create_init_profile): Set PATH and INFOPATH even when $_GUIX_PROFILE does not exist. After initial installation on a foreign distro, the guix pull profile won't be present in path. This means that the first guix pull won't take effect until the shell is restarted. ~/.guix-profile cannot be pre-loaded like this as the relevant paths are stored in ~/.guix-profile/etc/profile, which simply won't exist. However, guix package will output a relevant hint that instructs the user to reload the profile, so this isn't a problem.
2020-12-18guix-install.sh: Add variable quoting and curly-bracketing.Vincent Legoll
* etc/guix-install.sh (guix_get_bin)[dl_path]: Add variable quoting and curly-bracketing. Signed-off-by: Christopher Baines <mail@cbaines.net>
2020-12-18guix-install.sh: Adjust variable use in guix_get_bin_list().Vincent Legoll
* etc/guix-install.sh (guix_get_bin_list)[BIN_VER]: Add curly-brackets, [latest_ver]: Likewise & add explicit array zero-indexing. Signed-off-by: Christopher Baines <mail@cbaines.net>
2020-12-18guix-install.sh: Add variable quoting in sys_make_guix_available.Vincent Legoll
* etc/guix-install.sh (sys_make_guix_available): Add variable quoting. Signed-off-by: Christopher Baines <mail@cbaines.net>
2020-12-18guix-install.sh: Replace tabs with spaces.Vincent Legoll
Almost the entire file is indented with spaces, a few tabs slipped in, clean them up. * etc/guix-install.sh(chk_sys_arch): Replace tabs with spaces. (sys_enable_guix_daemon): Likewise. Signed-off-by: Christopher Baines <mail@cbaines.net>
2020-11-15guix-install.sh: don't throw away release candidates when picking the latest ↵Daniel Brooks
version * etc/guix-install.sh (guix_get_bin_list): modify regexes to allow rcN syntax Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-10-16guix-install.sh: Check the service 'nscd' and suggest it.zimoun
Fixes <https://bugs.gnu.org/43744>. * etc/guix-install.sh (chk_sys_nscd): New function to check if the service 'nscd is running, otherwise suggest to install distribution-wide. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-10-16guix-install.sh: Add symbolic links for supported shell completions.zimoun
Fixes <https://bugs.gnu.org/43744>. * etc/guix-install.sh (sys_create_shell_completion): New function to add system wide all the symlinks for supported shell completions. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-17guix-install.sh: Support OpenRC.Morgan Smith
* etc/guix-install.sh (chk_init_sys): Detect OpenRC. (sys_enable_guix_daemon): Install & enable the Guix daemon on such systems. * etc/openrc/guix-daemon.in: New file. * nix/local.mk: Add a rule for it. (openrcservicedir, nodist_openrcservice_DATA): New variables. (CLEANFILES, EXTRA_DIST): Add them. * .gitignore: Ignore etc/openrc/guix-daemon. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2020-09-17guix-install.sh: Be POSIX-compliant.Morgan Smith
* etc/guix-install.sh (guix_get_bin_list): Call grep with an extended regular expression instead of a non-POSIX Perl regular expression. (sys_create_store): Remove ‘--warning=no-timestamp’ argument to tar. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2020-09-09guix-install.sh: Quote the OpenPGP key URL.Ludovic Courtès
Without quotes, zsh fails with "no matches found" as it tries to interpret the question mark. * etc/guix-install.sh (chk_gpg_keyring): Enclose URL in single quotes.
2020-07-16guix-install.sh: Make sure /etc/profile is sourced.Tobias Geerinckx-Rice
New users regularly report missing newly-installed programmes and icons. * etc/guix-install.scm (main): Tell users to log out & back in.
2020-07-16guix-install.sh: Suggest running gpg as root.Tobias Geerinckx-Rice
The original example regularly prevented new users from installing Guix at all. * etc/guix-install.scm (chk_gpg_keyring): Suggest ‘sudo -i gpg’.
2020-07-14etc: Enable mount unit only if it exists.Tobias Geerinckx-Rice
* etc/guix-install.sh (sys_enable_guix_daemon): Enable gnu-store.mount only if it was actually installed. Reported by peanutbutterandc on #guix.
2020-05-23guix-install.sh: Fix ‘systemctl not found’ error message at probe.Vincent Legoll
* etc/guix-install.sh (chk_init_sys): Redirect systemctl errors to /dev/null. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2020-05-23guix-install.sh: Add xz to requirements.Vincent Legoll
* etc/guix-install.sh (REQUIRE): Add xz to requirements list. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2020-05-17etc: Install mount unit only if it exists.Tobias Geerinckx-Rice
This follows up on 1a1faa78b0498fbb71f1533beb4b65817c1d3f2a, and avoids the (non-fatal) error seen in <https://issues.guix.gnu.org/41356>. /gnu/store will remain writable on new foreign distribution installations until the next release. * etc/guix-install.sh (sys_enable_guix_daemon): Check for ‘gnu-store.mount’ presence before trying to cp it. Update forgotten copyright header.
2020-05-16etc: Add a systemd unit to bind-mount @storedir@ read-only.Tobias Geerinckx-Rice
* etc/gnu-store.mount.in: New file. * nix/local.mk (nodist_systemdservice_DATA): Add it. (etc/%.mount): New rule for it. * etc/guix-install.sh (sys_enable_guix_daemon): Install it. * doc/guix.texi (Binary Installation): Document it. * .gitignore: Ignore changes to it.
2020-03-22guix-install.sh: /etc/profile.d/guix.sh sources ~/.guix-profile/etc/profile.Ludovic Courtès
* etc/guix-install.sh (sys_create_init_profile): Source ~/.guix-profile/etc/profile instead of running 'guix package --search-paths=prefix'
2020-03-22guix-install.sh: Add a trailing colon to 'INFOPATH'.Ludovic Courtès
Fixes <https://bugs.gnu.org/39984>. Suggested by Adam Porter <adam@alphapapa.net>. * etc/guix-install.sh (sys_create_init_profile): Add a trailing colon to 'INFOPATH'.
2020-03-11guix-install.sh: Install SysV init script.Danny Milosavljevic
* etc/guix-install.sh (sys_enable_guix_daemon): Install SysV init script.
2020-01-26guix-install.sh: Correctly treat empty or unset $XDG_DATA_DIRSAlexander Krotov
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>
2020-01-26guix-install.sh: Create /etc/profile.d if it does not existPrafulla Giri
* 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>
2020-01-26guix-install.sh: Export INFOPATH to contain updated guix info-pagesPrafulla Giri
* 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>
2020-01-17guix-install.sh: Create an init profile during installationPrafulla Giri
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>
2019-12-04guix-install.sh: Use a deterministic umask.Tobias Geerinckx-Rice
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.
2019-09-05guix-install.sh: Work around locale issues in 'guix-daemon.service'.Ludovic Courtès
* etc/guix-install.sh (sys_enable_guix_daemon): Modify 'guix-daemon.service' to work around locale issues not fixed in 1.0.1.
2019-07-08guix-install.sh: Don't initialise ~/.gnupg.Tobias Geerinckx-Rice
* etc/guix-install.sh (chk_gpg_keyring): Call gpg with ‘--dry-run’.
2019-07-08guix-install.sh: Check for PGP key separately.Tobias Geerinckx-Rice
* etc/guix-install.sh (chk_gpg_keyring): New function to handle the public key check previously stuffed into chk_require. (main): Call it.
2019-07-08guix-install.sh: Add missing ‘local’ declaration.Tobias Geerinckx-Rice
* etc/guix-install.sh (chk_require): Make $c local.
2019-07-08guix-install.sh: Treat REQUIRE as the array it is.Tobias Geerinckx-Rice
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.
2019-07-01etc: Do not recommend use of SKS key servers.Ricardo Wurmus
* etc/guix-install.sh: Recommend downloading the GPG key from Savannah.
2019-06-29guix-install.sh: Don't authorise hydra.gnu.org.Tobias Geerinckx-Rice
* etc/guix-install.sh (sys_authorize_build_farms): Authorise only ci.guix.gnu.org and make all references to it singular.
2019-05-10etc: Refer to ci.guix.gnu.org in install script.Ricardo Wurmus
* etc/guix-install.sh: Replace reference to ci.guix.info with ci.guix.gnu.org.
2019-05-02guix-install.sh: Update URL.Ludovic Courtès
* etc/guix-install.sh (GNU_URL): Change to ftp.gnu.org.
2019-02-05guix-install.sh: Avoid "#!/bin/bash" shebang.Ludovic Courtès
Fixes <https://bugs.gnu.org/34279>. Reported by Claes Wallin (韋嘉誠) <clacke@lysator.liu.se>. * etc/guix-install.sh: Change shebang to #!/bin/sh and add 'if' statement to spawn Bash if needed.
2018-12-13guix-install.sh: Use pool.sks-keyservers.net.Ludovic Courtès
"pgp.mit.edu" has been unavailable for some time. * etc/guix-install.sh (chk_require): Change key server to pool.sks-keyservers.net.
2018-12-05guix-install.sh: Use the "ci.guix.info.pub" file name for clarity. v0.16.0Ludovic Courtès
* etc/guix-install.sh (sys_authorize_build_farms): Use the "ci.guix.info.pub" file name rather "berlin.guixsd.org.pub".
2018-11-23build: Binary tarball now populates the "current-guix" profile.Ludovic Courtès
* Makefile.am (guix-binary.%.tar.xz): Pass '--profile-name=current-guix'. Remove glibc and glibc-utf8-locales. * doc/guix.texi (Binary Installation): Update accordingly. * etc/guix-install.sh * etc/guix-install.sh (sys_create_store, sys_enable_guix_daemon) (sys_authorize_build_farms): Likewise. * etc/guix-publish.conf.in, etc/guix-publish.service.in, etc/guix-daemon.conf.in, etc/guix-daemon.service.in: Update file names accordingly.
2018-10-14guix-install.sh: Recognize armhf-linux.Ludovic Courtès
* etc/guix-install.sh (chk_sys_arch): Add "armv7l" case.
2018-05-19guix-install.sh: Fix chk_require exiting without warning.Maxim Cournoyer
* etc/guix-install.sh (chk_require): Because of the set -e option, Bash was exiting when the command `command -v "$c" &>/dev/null' was running on its own. Instead, we now test the command and accumulate warning messages in a single statement by chaining the command with a logical OR. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-03-29guix-install.sh: Explicitly set root's home directory.Chris Marusich
* etc/guix-install.sh (ROOT_HOME): New variable. (sys_create_store, sys_enable_guix_daemon, sys_authorize_build_farms): Use ROOT_HOME instead of ~root or the HOME environment variable. * doc/guix.texi (Binary Installation): Instead of assuming that ~ and $HOME refer to root's directory simply because commands are being run as root, explicilty refer to it via ~root. Fixes: <https://bugs.gnu.org/30728>