GNU bug report logs - #27037
systemd service files installed by guix 0.13.0 cannot used by other distributions

Previous Next

Package: guix;

Reported by: 藍挺瑋 <lantw44 <at> gmail.com>

Date: Tue, 23 May 2017 15:34:02 UTC

Severity: normal

To reply to this bug, email your comments to 27037 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#27037; Package guix. (Tue, 23 May 2017 15:34:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to 藍挺瑋 <lantw44 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 23 May 2017 15:34:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: 藍挺瑋 <lantw44 <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: systemd service files installed by guix 0.13.0 cannot used by other
 distributions
Date: Tue, 23 May 2017 23:33:42 +0800
I want to update my unofficial guix packages for Arch and Fedora to
0.13.0, but 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, and users will have
to manually start guix-daemon and install guix with guix before they
can use the systemd service files. Is it possible to fix systemd
service files, so it can be easily used by packages in other
distributions?




Information forwarded to bug-guix <at> gnu.org:
bug#27037; Package guix. (Tue, 23 May 2017 16:17:01 GMT) Full text and rfc822 format available.

Message #8 received at 27037 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: 藍挺瑋 <lantw44 <at> gmail.com>
Cc: 27037 <at> debbugs.gnu.org
Subject: Re: bug#27037: systemd service files installed by guix 0.13.0 cannot
 used by other distributions
Date: Tue, 23 May 2017 12:16:24 -0400
[Message part 1 (text/plain, inline)]
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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#27037; Package guix. (Wed, 24 May 2017 15:38:02 GMT) Full text and rfc822 format available.

Message #11 received at 27037 <at> debbugs.gnu.org (full text, mbox):

From: 藍挺瑋 <lantw44 <at> gmail.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: 27037 <at> debbugs.gnu.org
Subject: Re: bug#27037: systemd service files installed by guix 0.13.0 cannot
 used by other distributions
Date: Wed, 24 May 2017 23:37:27 +0800
Leo Famulari 於 西元2017年05月24日 00:16 寫道:
> 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?

This can happen with source installation. 'make install' installs 
/usr/bin/guix* but not /var/guix. /var/guix doesn't exist until 
guix-daemon is started.

> 
> 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.

I think you mean that the systemd service files included in Guix are 
only intended to be used with binary installation process. Do you mean 
that using them with traditional 'make install' installation is not 
supported?

> 
>> 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.

Yes, I am packaging Guix for Arch and Fedora, and I use the systemd 
service files provided by Guix in my packages since version 0.8.3. If 
doing so is never supported, I can make my own service files like what I 
did for version 0.6 to 0.8.2 and I think this bug can be closed.

> 
> [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
>




Information forwarded to bug-guix <at> gnu.org:
bug#27037; Package guix. (Wed, 24 May 2017 22:08:02 GMT) Full text and rfc822 format available.

Message #14 received at 27037 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: 藍挺瑋 <lantw44 <at> gmail.com>
Cc: 27037 <at> debbugs.gnu.org
Subject: Re: bug#27037: systemd service files installed by guix 0.13.0 cannot
 used by other distributions
Date: Wed, 24 May 2017 18:07:53 -0400
[Message part 1 (text/plain, inline)]
On Wed, May 24, 2017 at 11:37:27PM +0800, 藍挺瑋 wrote:
> Leo Famulari 於 西元2017年05月24日 00:16 寫道:
> > I'm a little confused: is there a situation where Guix is not installed
> > but '/usr/bin/guix-daemon' exists?
> 
> This can happen with source installation. 'make install' installs
> /usr/bin/guix* but not /var/guix. /var/guix doesn't exist until guix-daemon
> is started.

I see. We discussed this use case previously, which led to the change
which caused your issue:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25852#80

In short, we decided to break this for `make install` since we didn't
come up with a better solution at the time.

> > 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.
> 
> I think you mean that the systemd service files included in Guix are only
> intended to be used with binary installation process. Do you mean that using
> them with traditional 'make install' installation is not supported?

It's de facto unsupported, since it's not working :) But, I think we
should address this use case, since it is causing problems for
downstream packagers.

> Yes, I am packaging Guix for Arch and Fedora, and I use the systemd service
> files provided by Guix in my packages since version 0.8.3. If doing so is
> never supported, I can make my own service files like what I did for version
> 0.6 to 0.8.2 and I think this bug can be closed.

I do think you should look into tailoring a service file to those
systems; you might be able to provide Guix on those systems in a more
integrated or idiomatic way.

However, we also try to offer upstream service files in the packages
offered by Guix, so I'd like to find a way to support both the binary
installation and `make install` use cases simultaneously.

Unless somebody proposes a fix in the meantime, I'll look into this more
closely before the next release.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#27037; Package guix. (Mon, 29 May 2017 14:21:02 GMT) Full text and rfc822 format available.

Message #17 received at 27037 <at> debbugs.gnu.org (full text, mbox):

From: 藍挺瑋 <lantw44 <at> gmail.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: 27037 <at> debbugs.gnu.org
Subject: Re: bug#27037: systemd service files installed by guix 0.13.0 cannot
 used by other distributions
Date: Mon, 29 May 2017 22:19:58 +0800
Leo Famulari 於 西元2017年05月25日 06:07 寫道:
> On Wed, May 24, 2017 at 11:37:27PM +0800, 藍挺瑋 wrote:
>> Leo Famulari 於 西元2017年05月24日 00:16 寫道:
>>> I'm a little confused: is there a situation where Guix is not installed
>>> but '/usr/bin/guix-daemon' exists?
>>
>> This can happen with source installation. 'make install' installs
>> /usr/bin/guix* but not /var/guix. /var/guix doesn't exist until guix-daemon
>> is started.
> 
> I see. We discussed this use case previously, which led to the change
> which caused your issue:
> 
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25852#80
> 
> In short, we decided to break this for `make install` since we didn't
> come up with a better solution at the time.
> 
>>> 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.
>>
>> I think you mean that the systemd service files included in Guix are only
>> intended to be used with binary installation process. Do you mean that using
>> them with traditional 'make install' installation is not supported?
> 
> It's de facto unsupported, since it's not working :) But, I think we
> should address this use case, since it is causing problems for
> downstream packagers.
> 
>> Yes, I am packaging Guix for Arch and Fedora, and I use the systemd service
>> files provided by Guix in my packages since version 0.8.3. If doing so is
>> never supported, I can make my own service files like what I did for version
>> 0.6 to 0.8.2 and I think this bug can be closed.
> 
> I do think you should look into tailoring a service file to those
> systems; you might be able to provide Guix on those systems in a more
> integrated or idiomatic way.

I updated my packages to install two systemd service files for 
guix-daemon to allow users to choose between /usr/bin/guix-daemon and 
/var/guix/profiles/per-user/root/guix-profile/bin/guix-daemon.

> 
> However, we also try to offer upstream service files in the packages
> offered by Guix, so I'd like to find a way to support both the binary
> installation and `make install` use cases simultaneously.
> 
> Unless somebody proposes a fix in the meantime, I'll look into this more
> closely before the next release.
> 

Is it possible to resolve it by providing a configure option to choose 
between two versions of systemd service files, so guix binary tarballs 
can use /var/guix/profiles but packages of other distributions can use 
/usr/bin?




This bug report was last modified 8 years and 14 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.