Commit graph

28 commits

Author SHA1 Message Date
Tobias Geerinckx-Rice
ebbf915422
etc: Install mount unit only if it exists.
This follows up on 1a1faa78b0, 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-17 14:12:35 +02:00
Tobias Geerinckx-Rice
1a1faa78b0
etc: Add a systemd unit to bind-mount @storedir@ read-only.
* 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-05-16 15:37:41 +02:00
Ludovic Courtès
e69b8bbae9
guix-install.sh: /etc/profile.d/guix.sh sources ~/.guix-profile/etc/profile.
* etc/guix-install.sh (sys_create_init_profile): Source
~/.guix-profile/etc/profile instead of running 'guix package
--search-paths=prefix'
2020-03-22 00:02:23 +01:00
Ludovic Courtès
3c69701f97
guix-install.sh: Add a trailing colon to 'INFOPATH'.
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-22 00:02:23 +01:00
Danny Milosavljevic
fe60ef998f
guix-install.sh: Install SysV init script.
* etc/guix-install.sh (sys_enable_guix_daemon): Install SysV init script.
2020-03-11 02:45:49 +01:00
Alexander Krotov
7ff169d04f
guix-install.sh: Correctly treat empty or unset $XDG_DATA_DIRS
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-26 23:21:39 +01:00
Prafulla Giri
29ba58c0ef
guix-install.sh: Create /etc/profile.d if it does not exist
* 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-26 23:21:39 +01:00
Prafulla Giri
5c03516a6b
guix-install.sh: Export INFOPATH to contain updated guix info-pages
* 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-26 23:21:39 +01:00
Prafulla Giri
30810aff71
guix-install.sh: Create an init profile during installation
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>
2020-01-17 17:28:57 +01:00
Tobias Geerinckx-Rice
32c06affca
guix-install.sh: Use a deterministic umask.
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-12-04 03:59:04 +01:00
Ludovic Courtès
e1e3fe0848
guix-install.sh: Work around locale issues in 'guix-daemon.service'.
* etc/guix-install.sh (sys_enable_guix_daemon): Modify
'guix-daemon.service' to work around locale issues not fixed in 1.0.1.
2019-09-05 18:33:30 +02:00
Tobias Geerinckx-Rice
9b2644c292
guix-install.sh: Don't initialise ~/.gnupg.
* etc/guix-install.sh (chk_gpg_keyring): Call gpg with ‘--dry-run’.
2019-07-08 18:16:10 +02:00
Tobias Geerinckx-Rice
5d8e505ce5
guix-install.sh: Check for PGP key separately.
* 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-08 18:16:10 +02:00
Tobias Geerinckx-Rice
7a2e0c52df
guix-install.sh: Add missing ‘local’ declaration.
* etc/guix-install.sh (chk_require): Make $c local.
2019-07-08 17:47:39 +02:00
Tobias Geerinckx-Rice
6c77d79a49
guix-install.sh: Treat REQUIRE as the array it is.
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-08 17:47:39 +02:00
Ricardo Wurmus
cea5db1b84
etc: Do not recommend use of SKS key servers.
* etc/guix-install.sh: Recommend downloading the GPG key from Savannah.
2019-07-01 23:32:08 +02:00
Tobias Geerinckx-Rice
414c4de15d
guix-install.sh: Don't authorise hydra.gnu.org.
* etc/guix-install.sh (sys_authorize_build_farms): Authorise only
ci.guix.gnu.org and make all references to it singular.
2019-06-29 06:28:50 +02:00
Ricardo Wurmus
825c39bfbb
etc: Refer to ci.guix.gnu.org in install script.
* etc/guix-install.sh: Replace reference to ci.guix.info with ci.guix.gnu.org.
2019-05-10 23:38:10 +02:00
Ludovic Courtès
3a3e9f2bb5
guix-install.sh: Update URL.
* etc/guix-install.sh (GNU_URL): Change to ftp.gnu.org.
2019-05-02 15:31:24 +02:00
Ludovic Courtès
f5fdc54d3a
guix-install.sh: Avoid "#!/bin/bash" shebang.
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.
2019-02-05 12:03:24 +01:00
Ludovic Courtès
1fc90e89f0
guix-install.sh: Use pool.sks-keyservers.net.
"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-13 18:44:40 +01:00
Ludovic Courtès
4a0b87f0ec
guix-install.sh: Use the "ci.guix.info.pub" file name for clarity.
* etc/guix-install.sh (sys_authorize_build_farms): Use the
"ci.guix.info.pub" file name rather "berlin.guixsd.org.pub".
2018-12-05 16:26:55 +01:00
Ludovic Courtès
e9926f80c6
build: Binary tarball now populates the "current-guix" profile.
* 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-11-23 15:42:01 +01:00
Ludovic Courtès
2510bd8756
guix-install.sh: Recognize armhf-linux.
* etc/guix-install.sh (chk_sys_arch): Add "armv7l" case.
2018-10-14 23:48:49 +02:00
Maxim Cournoyer
593fe73667
guix-install.sh: Fix chk_require exiting without warning.
* 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-05-19 22:47:07 +02:00
Chris Marusich
3cd4447f56
guix-install.sh: Explicitly set root's home directory.
* 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>
2018-03-29 07:03:37 +02:00
Efraim Flashner
ea6b1baec7
etc: guix-install.sh: Add aarch64-linux support.
* etc/guix-install.sh (chk_sys_arch): Add aarch64 case.
2018-02-21 22:14:39 +02:00
Ricardo Wurmus
6f4e8693e7
etc: Add installation script.
* etc/guix-install.sh: New file.
* Makefile.am (EXTRA_DIST): Add it.
* doc/guix.texi (Binary Installation): Mention it.

Co-authored-by: sharlatan <sharlatanus@gmail.com>
2018-01-30 03:48:04 +01:00