~ruther/guix-local

93243a6ca4e6b8f6b6c1aa9ee097bca8432a2b35 — Tobias Geerinckx-Rice 2 years ago 024f78a
guix-install.sh: Remove any old systemd units first.

Don't clobber /dev/null permissions if units are masked.

* etc/guix-install.sh (sys_enable_guix_daemon): Factor out unit
installation.  Unconditionally remove any old units.  Install and enable
gnu-store.mount after guix-daemon.service.
1 files changed, 16 insertions(+), 13 deletions(-)

M etc/guix-install.sh
M etc/guix-install.sh => etc/guix-install.sh +16 -13
@@ 434,24 434,27 @@ sys_enable_guix_daemon()
                _msg "${PAS}enabled Guix daemon via upstart"
            ;;
        systemd)
            { # systemd .mount units must be named after the target directory.
              # Here we assume a hard-coded name of /gnu/store.
              # XXX Work around <https://issues.guix.gnu.org/41356> until next release.
              cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \
                 /etc/systemd/system/;
              chmod 664 /etc/systemd/system/gnu-store.mount;
              systemctl daemon-reload &&
                  systemctl enable gnu-store.mount;

              cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
                 /etc/systemd/system/;
              chmod 664 /etc/systemd/system/guix-daemon.service;
            { install_unit()
              {
                  local dest="/etc/systemd/system/$1"
                  rm -f "$dest"
                  cp ~root/.config/guix/current/lib/systemd/system/"$1" "$dest"
                  chmod 664 "$dest"
                  systemctl daemon-reload
                  systemctl enable "$1"
              }

              install_unit guix-daemon.service

              configure_substitute_discovery \
                  /etc/systemd/system/guix-daemon.service

              # Install after guix-daemon.service to avoid a harmless warning.
              # systemd .mount units must be named after the target directory.
              # Here we assume a hard-coded name of /gnu/store.
              install_unit gnu-store.mount

              systemctl daemon-reload &&
                  systemctl enable guix-daemon &&
                  systemctl start  guix-daemon; } &&
                _msg "${PAS}enabled Guix daemon via systemd"
            ;;