Hi. I was trying to build guile-gnutls via guix in a debian12 container, and the sequence below happened. Is there a missing dependency on daemonize? /Simon $ sudo podman run -it --rm --privileged debian:12-slim # apt-get update # apt-get install guix git # git clone https://gitlab.com/gnutls/guile.git # cd guile/ # guix build -f guix.scm guix build: error: failed to connect to `/var/guix/daemon-socket/socket': No such file or directory # /etc/init.d/guix-daemon start /etc/init.d/guix-daemon: line 35: daemonize: command not found # service guix-daemon start /etc/init.d/guix-daemon: line 35: daemonize: command not found # apt-get install daemonize # service guix-daemon start # guix build -f guix.scm updating checkout of '/guile'... ... successfully built /gnu/store/wza4ydc3hcalql66m3w8f6xr2s4sm6vf-guile-gnutls-3.7.12-git.drv /gnu/store/jq6zvcadd1wnv1yirhp3xr378l6g9n8c-guile-gnutls-3.7.12-git #
... It is mentioned in /usr/share/doc/guix/README.Debian. I am of mixed mind on doing more than that... with the debian defaults, it is not needed, so it seems a bit much to add it to Depends or even Recommends. Suggests is hardly used much, but might make it a little more visible than the README.Debian? I guess I could add: Recommends: systemd-somethingorother | daemonize But I think recommends with | sometimes behave a little oddly... live well, vagrant
Hi,
is it? I ran into the same issue and I did read guix.README.Debian which does
not cover this situation. There is a section called "Using with sysvinit" but
that does not apply here because no sysvinit is involved, right?
is already installed on most systems then adding a Depends on it does not hurt
because it will make no difference. On the other hand, very minimal systems
that do not have the package installed will benefit from such a dependency as
without it, the package cannot function.
It seems though that the situation has changed a bit now in 2024 and the guix
package is installing a native systemd service file which does not require the
daemonize tool anymore?
About systemd-sysusers: there is no policy requirement to add a dependency if
your package ships files in /usr/lib/sysusers.d in the same way as there is no
requirement to add a dependency on cron if the package ships a cronjob in
/etc/cron.d. Maybe as a datapoint, if src:guix were to run
dh_installsystemduser as part of the build, then it would add the following to
${misc:Depends}:
systemd | systemd-standalone-sysusers | systemd-sysusers
Another thing to ask: is there a common-enough use-case with which the package
can be used without systemd-sysusers (or some of its real providers)?
Maybe similarly, if one does not have the package "netbase" installed, running
"guix pull" will fail with:
guix substitute: warning: ci.guix.gnu.org: host not found: Servname not supported for ai_socktype
This is because without "netbase" the file /etc/services will not exist. So why
is the guix package not depending on "netbase"? You may also argue: any
reasonable system will have "netbase" installed (it is Priority: important
after all). But if that is so, then adding a dependency on netbase will not
hurt either, right? The package "netbase" is not marked as Essential:yes so if
using guix cannot reasonable by done without /etc/services then it should
depend on the package providing it, no? This is a similar argument as for
depending on systemd-sysusers in the way as it is done by dh_installsystemduser
above.
What do you think?
Thanks!
cheers, josch
... In my experience I have never had this issue running systemd ... so I did assume it was a sysvinit environment ... let me know what environments this occurs in! I did some basic testing with sysvinit that worked at the time to resolve: https://bugs.debian.org/983248 Which is why the README.Debian includes any instructions at all. If those instructions are insufficient due to changes or other environments not covered... please clarify and ideally propose a tested, working fix! :) I do not think anything changed; the guix package in Debian has been using systemd units from very early on (if not from the very beginning); the systemd services do not require daemonize. Honestly, I do not wrap my head around all these different permutations of user and group instantiation. I have it working with a fairly standard debian install, and if there is something specific, simple and straightforward to make it work in other environments, I will not block it outright... It requires manually adding all the users and groups expected to be available with the guix-daemon service, and perhaps manual configuration of the guix-daemon service. This is brought up in: https://bugs.debian.org/1051829 I stalled out trying to find a reproducer of the issue that makes sense (e.g. an environment with network access but netbase not installed), but honestly, given the tiny size of the netbase package, I just went ahead and added it to Depends just now... live well, vagrant