Patchwork [1/2] doc: Symlink daemon start-up files.

login
register
mail settings
Submitter Hartmut Goebel
Date Nov. 18, 2016, 11 a.m.
Message ID <1479466834-3508-2-git-send-email-h.goebel@crazy-compilers.com>
Download mbox | patch
Permalink /patch/17561/
State New
Headers show

Comments

Hartmut Goebel - Nov. 18, 2016, 11 a.m.
This patch ensures that always the current profile's daemon will be used.

The .service file contains the path to the guix-daemon within the store. Thus
when copying the file, it will point to the very version of guix-daemon used
at the time of copying – even after system upgrade or when this version has
been garbage collected from the store.

* doc/guix.texi (Binary Installation): Change example code for installing
  the systemd and Upstart files to use symbolic links instead of copying
  the files.
---
 doc/guix.texi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Leo Famulari - Nov. 18, 2016, 8:31 p.m.
On Fri, Nov 18, 2016 at 12:00:33PM +0100, Hartmut Goebel wrote:
> This patch ensures that always the current profile's daemon will be used.
> 
> The .service file contains the path to the guix-daemon within the store. Thus
> when copying the file, it will point to the very version of guix-daemon used
> at the time of copying – even after system upgrade or when this version has
> been garbage collected from the store.

I'd argue it should point to /var/guix/profiles/per-user/root/... but I
don't really care one way or the other since I often write my own
systemd unit files since they are usually trivial.

Actually, it looks like guix-daemon.service.in builds the path from
@bindir@, so in my unprivileged Git work tree, guix-daemon.service execs
/usr/local/bin/guix-daemon. This service wouldn't work for me since
guix-daemon is not there.

> * doc/guix.texi (Binary Installation): Change example code for installing
>   the systemd and Upstart files to use symbolic links instead of copying
>   the files.
> ---
>  doc/guix.texi | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/doc/guix.texi b/doc/guix.texi
> index a3eba58..92d7ee8 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -453,7 +453,7 @@ If your host distro uses the systemd init system, this can be achieved
>  with these commands:
>  
>  @example
> -# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \
> +# ln -s ~root/.guix-profile/lib/systemd/system/guix-daemon.service \
>          /etc/systemd/system/
>  # systemctl start guix-daemon && systemctl enable guix-daemon

Does systemd allow symlinked unit files (aka service definitions)? I
read this old discussion that says "No" [0] but it could have changed by
now [1].

[0]
https://bugzilla.redhat.com/show_bug.cgi?id=955379

[1]
https://bugzilla.redhat.com/show_bug.cgi?id=1014311

>  @end example
> @@ -461,7 +461,7 @@ with these commands:
>  If your host distro uses the Upstart init system:
>  
>  @example
> -# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/
> +# ln -s ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/
>  # start guix-daemon

I don't know anything about upstart, so no comments here.
Hartmut Goebel - Nov. 21, 2016, 4:38 p.m.
Am 18.11.2016 um 21:31 schrieb Leo Famulari:
> Does systemd allow symlinked unit files (aka service definitions)? I
> read this old discussion that says "No" [0] but it could have changed by
> now [1].

Yes it does.

Patch

diff --git a/doc/guix.texi b/doc/guix.texi
index a3eba58..92d7ee8 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -453,7 +453,7 @@  If your host distro uses the systemd init system, this can be achieved
 with these commands:
 
 @example
-# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \
+# ln -s ~root/.guix-profile/lib/systemd/system/guix-daemon.service \
         /etc/systemd/system/
 # systemctl start guix-daemon && systemctl enable guix-daemon
 @end example
@@ -461,7 +461,7 @@  with these commands:
 If your host distro uses the Upstart init system:
 
 @example
-# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/
+# ln -s ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/
 # start guix-daemon
 @end example