summaryrefslogtreecommitdiff
path: root/etc/guix-install.sh
Commit message (Collapse)AuthorAge
* guix-install.sh: Undo some bugs introduced by shellcheck.Tobias Geerinckx-Rice2021-11-07
| | | | * etc/guix-install.sh: Unquote all file names containing ~root.
* guix-install.sh: Don't swallow wget errors.Tobias Geerinckx-Rice2021-09-29
| | | | | | | | | Using ‘-q’ suppresses *all* stderr output, including errors. * etc/guix-install.sh (chk_gpg_keyring, guix_get_bin_list, guix_get_bin): Substitute ‘--no-verbose’ for ‘-q’. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>
* guix-install.sh: Untabify.Maxim Cournoyer2021-07-14
| | | | * etc/guix-install.sh (sys_create_build_user): Normalize to spaces.
* guix-install.sh: Prompt for configuring substitutes discovery.Maxim Cournoyer2021-07-07
| | | | | | | | | | | | | | | | Also ensure prompt_yes_no always print the message with a trailing space, which is more pleasing to the eye. * etc/guix-daemon.conf.in <--discover=no>: New guix-daemon option. * etc/guix-daemon.service.in: Likewise. * etc/init.d/guix-daemon.in: Likewise. * etc/openrc/guix-daemon.in: Likewise. * etc/guix-install.sh (configure_substitute_discovery): New procedure. (sys_enable_guix_daemon): Ask the user whether automatic substitute discovery should be enabled. Set the '--discover' argument accordingly. (prompt_yes_no): Add a trailing space to the message. (sys_authorize_build_farms): Remove trailing space from the message argument. * NEWS (Distribution): Add news.
* guix-install.sh: No longer export GUIX_PROFILE.Hartmut Goebel2021-07-07
| | | | | | | | If GUIX_PROFILE is exported here, any subsequent "source /some/other/profile/etc/profile" will set variables pointing to "$HOME/.guix-profile" instead of pointing to the sourced profile. * etc/guix-install.sh (sys_create_init_profile): No longer export GUIX_PROFILE.
* guix-install.sh: Exit early if Guix is already installed.Maxim Cournoyer2021-05-05
| | | | | * etc/guix-install.sh (sys_create_store): Move the check & exit before The Guix binary archive is unpacked. Re-indent tar extraction command.
* guix-install.sh: Propose automatically fetching OpenPGP keys.Maxim Cournoyer2021-05-05
| | | | | | | 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.
* guix-install.sh: Please the shellcheck linter.Maxim Cournoyer2021-05-05
| | | | | | | | | | | | | | | | * 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.
* guix-install.sh: Add support for more than one signing key.Maxim Cournoyer2021-05-01
| | | | | | | | | | 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.
* guix-install.sh: Ensure GUIX_BINARY_FILE_NAME is an absolute path.Maxim Cournoyer2021-04-29
| | | | | | | | 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.
* guix-install.sh: Allow overriding the Guix binary source.Maxim Cournoyer2021-04-24
| | | | | | | | | 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.
* guix-install.sh: Add the build users to the 'kvm' group.Leo Famulari2021-04-14
| | | | | | | 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.
* Add powerpc64le-linux as a supported Guix architecture.Chris Marusich2021-03-23
| | | | | | | | | | | 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.
* /etc/profile.d/guix.sh: Add guix pull profile even when absentJakub Kądziołka2021-01-03
| | | | | | | | | | | | | | * 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.
* guix-install.sh: Add variable quoting and curly-bracketing.Vincent Legoll2020-12-18
| | | | | | | * etc/guix-install.sh (guix_get_bin)[dl_path]: Add variable quoting and curly-bracketing. Signed-off-by: Christopher Baines <mail@cbaines.net>
* guix-install.sh: Adjust variable use in guix_get_bin_list().Vincent Legoll2020-12-18
| | | | | | | * 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>
* guix-install.sh: Add variable quoting in sys_make_guix_available.Vincent Legoll2020-12-18
| | | | | | * etc/guix-install.sh (sys_make_guix_available): Add variable quoting. Signed-off-by: Christopher Baines <mail@cbaines.net>
* guix-install.sh: Replace tabs with spaces.Vincent Legoll2020-12-18
| | | | | | | | | | 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>
* guix-install.sh: don't throw away release candidates when picking the latest ↵Daniel Brooks2020-11-15
| | | | | | | | version * etc/guix-install.sh (guix_get_bin_list): modify regexes to allow rcN syntax Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix-install.sh: Check the service 'nscd' and suggest it.zimoun2020-10-16
| | | | | | | | | 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>
* guix-install.sh: Add symbolic links for supported shell completions.zimoun2020-10-16
| | | | | | | | | 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>
* guix-install.sh: Support OpenRC.Morgan Smith2020-09-17
| | | | | | | | | | | | | * 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>
* guix-install.sh: Be POSIX-compliant.Morgan Smith2020-09-17
| | | | | | | | * 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>
* guix-install.sh: Quote the OpenPGP key URL.Ludovic Courtès2020-09-09
| | | | | | | 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.
* guix-install.sh: Make sure /etc/profile is sourced.Tobias Geerinckx-Rice2020-07-16
| | | | | | New users regularly report missing newly-installed programmes and icons. * etc/guix-install.scm (main): Tell users to log out & back in.
* guix-install.sh: Suggest running gpg as root.Tobias Geerinckx-Rice2020-07-16
| | | | | | | The original example regularly prevented new users from installing Guix at all. * etc/guix-install.scm (chk_gpg_keyring): Suggest ‘sudo -i gpg’.
* etc: Enable mount unit only if it exists.Tobias Geerinckx-Rice2020-07-14
| | | | | | | * etc/guix-install.sh (sys_enable_guix_daemon): Enable gnu-store.mount only if it was actually installed. Reported by peanutbutterandc on #guix.
* guix-install.sh: Fix ‘systemctl not found’ error message at probe.Vincent Legoll2020-05-23
| | | | | | | * etc/guix-install.sh (chk_init_sys): Redirect systemctl errors to /dev/null. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
* guix-install.sh: Add xz to requirements.Vincent Legoll2020-05-23
| | | | | | * etc/guix-install.sh (REQUIRE): Add xz to requirements list. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
* etc: Install mount unit only if it exists.Tobias Geerinckx-Rice2020-05-17
| | | | | | | | | | | | 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.
* etc: Add a systemd unit to bind-mount @storedir@ read-only.Tobias Geerinckx-Rice2020-05-16
| | | | | | | | | * 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.
* guix-install.sh: /etc/profile.d/guix.sh sources ~/.guix-profile/etc/profile.Ludovic Courtès2020-03-22
| | | | | | * etc/guix-install.sh (sys_create_init_profile): Source ~/.guix-profile/etc/profile instead of running 'guix package --search-paths=prefix'
* guix-install.sh: Add a trailing colon to 'INFOPATH'.Ludovic Courtès2020-03-22
| | | | | | | | 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'.
* guix-install.sh: Install SysV init script.Danny Milosavljevic2020-03-11
| | | | * etc/guix-install.sh (sys_enable_guix_daemon): Install SysV init script.
* guix-install.sh: Correctly treat empty or unset $XDG_DATA_DIRSAlexander Krotov2020-01-26
| | | | | | | | | | | | | | | | | 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>
* guix-install.sh: Create /etc/profile.d if it does not existPrafulla Giri2020-01-26
| | | | | | | | | * 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>
* guix-install.sh: Export INFOPATH to contain updated guix info-pagesPrafulla Giri2020-01-26
| | | | | | | | | * 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>
* guix-install.sh: Create an init profile during installationPrafulla Giri2020-01-17
| | | | | | | | | | | | | | | | | 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>
* guix-install.sh: Use a deterministic umask.Tobias Geerinckx-Rice2019-12-04
| | | | | | | | | 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.
* guix-install.sh: Work around locale issues in 'guix-daemon.service'.Ludovic Courtès2019-09-05
| | | | | * etc/guix-install.sh (sys_enable_guix_daemon): Modify 'guix-daemon.service' to work around locale issues not fixed in 1.0.1.
* guix-install.sh: Don't initialise ~/.gnupg.Tobias Geerinckx-Rice2019-07-08
| | | | * etc/guix-install.sh (chk_gpg_keyring): Call gpg with ‘--dry-run’.
* guix-install.sh: Check for PGP key separately.Tobias Geerinckx-Rice2019-07-08
| | | | | | * etc/guix-install.sh (chk_gpg_keyring): New function to handle the public key check previously stuffed into chk_require. (main): Call it.
* guix-install.sh: Add missing ‘local’ declaration.Tobias Geerinckx-Rice2019-07-08
| | | | * etc/guix-install.sh (chk_require): Make $c local.
* guix-install.sh: Treat REQUIRE as the array it is.Tobias Geerinckx-Rice2019-07-08
| | | | | | | | 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.
* etc: Do not recommend use of SKS key servers.Ricardo Wurmus2019-07-01
| | | | * etc/guix-install.sh: Recommend downloading the GPG key from Savannah.
* guix-install.sh: Don't authorise hydra.gnu.org.Tobias Geerinckx-Rice2019-06-29
| | | | | * etc/guix-install.sh (sys_authorize_build_farms): Authorise only ci.guix.gnu.org and make all references to it singular.
* etc: Refer to ci.guix.gnu.org in install script.Ricardo Wurmus2019-05-10
| | | | * etc/guix-install.sh: Replace reference to ci.guix.info with ci.guix.gnu.org.
* guix-install.sh: Update URL.Ludovic Courtès2019-05-02
| | | | * etc/guix-install.sh (GNU_URL): Change to ftp.gnu.org.
* guix-install.sh: Avoid "#!/bin/bash" shebang.Ludovic Courtès2019-02-05
| | | | | | | | 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.
* guix-install.sh: Use pool.sks-keyservers.net.Ludovic Courtès2018-12-13
| | | | | | | "pgp.mit.edu" has been unavailable for some time. * etc/guix-install.sh (chk_require): Change key server to pool.sks-keyservers.net.