Subject: bug#27037: systemd service files installed by guix 0.13.0 cannot used by other distributions

From: Leo Famulari <[email-masked]>
Date: Tue, 23 May 2017 12:16:24 -0400

On Tue, May 23, 2017 at 11:33:42PM +0800, 藍挺瑋 wrote:

Hi!

> I found the systemd service files installed by guix 0.13.0
> use /var/guix/profiles/per-user/root/guix-profile/bin/guix* instead of
> /usr/bin/guix* in ExecStart=. The path /var/guix/profiles don't exist
> on systems that don't have guix installed before

I'm a little confused: is there a situation where Guix is not installed
but '/usr/bin/guix-daemon' exists?

The path '/var/guix/profiles/per-user/root/guix-profile/bin/guix-daemon'
is guaranteed to exist if you followed the instructions in Binary
Installation [0], which is, as far as I know, the most common way to
install Guix on other distros. So, I think this path is appropriate for
the basic service file we provide.

> Is it possible to fix systemd service files, so it can be easily used
> by packages in other distributions?

I think that, if you are packaging Guix for other distros, you should
provide your own service file. My experience is that each systemd-based
distro uses systemd's advanced features (e.g. process grouping and
resource limiting) in different ways. So, making your own service file,
in accordance with your distro's standards, will help Guix work in a way
that is more idiomatic to the host distro.

[0] Specifically, it happens during the initial unpacking and renaming:
`mv var/guix /var/ && mv gnu/`
https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html