Missing dependency for sysv-init

  • Open
  • quality assurance status badge
Details
4 participants
  • Gabriel Hondet
  • guido
  • Julien Lepiller
  • Leo Famulari
Owner
unassigned
Submitted by
Gabriel Hondet
Severity
normal
G
G
Gabriel Hondet wrote on 18 Apr 2021 09:15
(address . bug-guix@gnu.org)
20210418071508.GA16865@motacilla.home
Hi,

I installed Guix on Devuan with SysV-init, but the script copied in
/etc/init.d/ uses the command "daemonize" which isn't listed in the
dependencies of "guix-install.sh". Consequently, guix is installed but
cannot be started, the command

service guix-daemon start

returns

/etc/init.d/guix-daemon: line 32: daemonize: command not found

Best wishes,
Gabriel
L
L
Leo Famulari wrote on 18 Apr 2021 19:13
(name . Gabriel Hondet)(address . gabrielhondet@gmail.com)(address . 47865@debbugs.gnu.org)
YHxooCSJ9mXy8z7h@jasmine.lan
On Sun, Apr 18, 2021 at 09:15:09AM +0200, Gabriel Hondet wrote:
Toggle quote (11 lines)
> I installed Guix on Devuan with SysV-init, but the script copied in
> /etc/init.d/ uses the command "daemonize" which isn't listed in the
> dependencies of "guix-install.sh". Consequently, guix is installed but
> cannot be started, the command
>
> service guix-daemon start
>
> returns
>
> /etc/init.d/guix-daemon: line 32: daemonize: command not found

Do you know where this `daemonize` command is supposed to come from? I
don't see a package with this name in Guix. Is it part of Devuan?
J
J
Julien Lepiller wrote on 18 Apr 2021 20:00
(address . bug-guix@gnu.org)
20210418200035.482f8628@tachikoma.lepiller.eu
Le Sun, 18 Apr 2021 13:13:04 -0400,
Leo Famulari <leo@famulari.name> a écrit :

Toggle quote (18 lines)
> On Sun, Apr 18, 2021 at 09:15:09AM +0200, Gabriel Hondet wrote:
> > I installed Guix on Devuan with SysV-init, but the script copied in
> > /etc/init.d/ uses the command "daemonize" which isn't listed in the
> > dependencies of "guix-install.sh". Consequently, guix is installed
> > but cannot be started, the command
> >
> > service guix-daemon start
> >
> > returns
> >
> > /etc/init.d/guix-daemon: line 32: daemonize: command not found
>
> Do you know where this `daemonize` command is supposed to come from? I
> don't see a package with this name in Guix. Is it part of Devuan?
>
>
>

Debian has a package called daemonize:
G
G
Gabriel Hondet wrote on 19 Apr 2021 14:33
(name . Leo Famulari)(address . leo@famulari.name)(address . 47865@debbugs.gnu.org)
20210419123322.GA19201@nancy.private.lsv.fr
On Sun, Apr 18, 2021 at 01:13:04PM -0400, Leo Famulari wrote:
Toggle quote (15 lines)
> On Sun, Apr 18, 2021 at 09:15:09AM +0200, Gabriel Hondet wrote:
> > I installed Guix on Devuan with SysV-init, but the script copied in
> > /etc/init.d/ uses the command "daemonize" which isn't listed in the
> > dependencies of "guix-install.sh". Consequently, guix is installed but
> > cannot be started, the command
> >
> > service guix-daemon start
> >
> > returns
> >
> > /etc/init.d/guix-daemon: line 32: daemonize: command not found
>
> Do you know where this `daemonize` command is supposed to come from? I
> don't see a package with this name in Guix. Is it part of Devuan?

Devuan has such a package (as well as Debian):

Package: daemonize
Version: 1.7.7-1+b1
Priority: optional
Section: admin
Source: daemonize (1.7.7-1)
Maintainer: Sandro Tosi <morph@debian.org>
Installed-Size: 36.9 kB
Depends: libc6 (>= 2.4)
Download-Size: 15.1 kB
APT-Manual-Installed: yes
APT-Sources: http://deb.devuan.org/mergedbeowulf/main amd64 Packages
Description: tool to run a command as a daemon
As defined in W. Richard Stevens’ 1990 book, UNIX Network Programming
(Addison-Wesley, 1990), a daemon is “a process that executes ‘in the
background’ i.e., without an associated terminal or login shell) either
waiting for some event to occur, or waiting to perform some specified task on a
periodic basis.” Upon startup, a typical daemon program will:
.
* Close all open file descriptors (especially standard input, standard output
and standard error)
* Change its working directory to the root filesystem, to ensure that it
doesn’t tie up another filesystem and prevent it from being unmounted
* Reset its umask value
* Run in the background (i.e., fork)
* Disassociate from its process group (usually a shell), to insulate itself
from signals (such as HUP) sent to the process group
* Ignore all terminal I/O signals
* Disassociate from the control terminal (and take steps not to reacquire one)
* Handle any SIGCLD signals
.
Most programs that are designed to be run as daemons do that work for
themselves. However, you’ll occasionally run across one that does not. When
you must run a daemon program that does not properly make itself into a true
Unix daemon, you can use daemonize to force it to run as a true daemon.
L
L
Leo Famulari wrote on 19 Apr 2021 19:21
(name . Gabriel Hondet)(address . gabrielhondet@gmail.com)(address . 47865@debbugs.gnu.org)
YH28KzYUDPe9f0Jc@jasmine.lan
On Mon, Apr 19, 2021 at 02:33:23PM +0200, Gabriel Hondet wrote:
Toggle quote (8 lines)
> On Sun, Apr 18, 2021 at 01:13:04PM -0400, Leo Famulari wrote:
> > Do you know where this `daemonize` command is supposed to come from? I
> > don't see a package with this name in Guix. Is it part of Devuan?
>
> Devuan has such a package (as well as Debian):
>
> Package: daemonize

Okay. So I guess that what we need to do here is add 'daemonize' to the
REQUIRE list in guix-install.sh.
L
L
Leo Famulari wrote on 19 Apr 2021 19:24
(name . Gabriel Hondet)(address . gabrielhondet@gmail.com)(address . 47865@debbugs.gnu.org)
YH281OnJytBr5Tw0@jasmine.lan
On Mon, Apr 19, 2021 at 01:21:47PM -0400, Leo Famulari wrote:
Toggle quote (3 lines)
> Okay. So I guess that what we need to do here is add 'daemonize' to the
> REQUIRE list in guix-install.sh.

Well, I thought it about for a bit longer, and realized that we don't
want the script to require this command, since it is only used on
systems using SysV init.

Does anybody know if the install script has a mechanism for optional
dependencies? How should we handle this?
G
Missing dependency for sysv-init
(address . 47865@debbugs.gnu.org)
4d4d92ce-9850-2013-2312-d95ec6e6e6ab@wtmnd.nl
Hi all,

I run a Devuan system with SysV init and made a fix.

Please find it here: (sorry, git-send-email does not work yet..)

index 982fb0a266..a09fd8fef1 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -210,6 +210,9 @@ chk_init_sys()
elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then
_msg "${INF}init system is: sysv-init"
INIT_SYS="sysv-init"
+ # SysV init on Devuan (and probably others) use
start-stop-daemon
+ # and need daemonize as extra dependency.
+ REQUIRE+=(daemonize)
return 0
elif [[ $(openrc --version 2>/dev/null) =~ \(OpenRC\) ]]; then
_msg "${INF}init system is: OpenRC"
@@ -673,9 +676,9 @@ main()
_msg "Starting installation ($(date))"
chk_term
- chk_require "${REQUIRE[@]}"
chk_gpg_keyring
chk_init_sys
+ chk_require "${REQUIRE[@]}"
chk_sys_arch
chk_sys_nscd


Kind regards,

Guido Witmond.
?