guix-install.sh: Support OpenRC.
* etc/guix-install.sh (chk_init_sys): Detect OpenRC. (sys_enable_guix_daemon): Install & enable the Guix daemon on such systems. * etc/openrc/guix-daemon.in: New file. * nix/local.mk: Add a rule for it. (openrcservicedir, nodist_openrcservice_DATA): New variables. (CLEANFILES, EXTRA_DIST): Add them. * .gitignore: Ignore etc/openrc/guix-daemon. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>master
parent
f72bafe32d
commit
cabac732de
|
@ -74,6 +74,7 @@
|
||||||
/etc/guix-publish.conf
|
/etc/guix-publish.conf
|
||||||
/etc/guix-publish.service
|
/etc/guix-publish.service
|
||||||
/etc/init.d/guix-daemon
|
/etc/init.d/guix-daemon
|
||||||
|
/etc/openrc/guix-daemon
|
||||||
/guix-daemon
|
/guix-daemon
|
||||||
/guix/config.scm
|
/guix/config.scm
|
||||||
/libformat.a
|
/libformat.a
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
# Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
# Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
# Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||||
# Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
# Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
# Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Guix.
|
# This file is part of GNU Guix.
|
||||||
#
|
#
|
||||||
|
@ -150,6 +151,10 @@ chk_init_sys()
|
||||||
_msg "${INF}init system is: sysv-init"
|
_msg "${INF}init system is: sysv-init"
|
||||||
INIT_SYS="sysv-init"
|
INIT_SYS="sysv-init"
|
||||||
return 0
|
return 0
|
||||||
|
elif [[ $(openrc --version 2>/dev/null) =~ \(OpenRC\) ]]; then
|
||||||
|
_msg "${INF}init system is: OpenRC"
|
||||||
|
INIT_SYS="openrc"
|
||||||
|
return 0
|
||||||
else
|
else
|
||||||
INIT_SYS="NA"
|
INIT_SYS="NA"
|
||||||
_err "${ERR}Init system could not be detected."
|
_err "${ERR}Init system could not be detected."
|
||||||
|
@ -383,6 +388,16 @@ sys_enable_guix_daemon()
|
||||||
service guix-daemon start; } &&
|
service guix-daemon start; } &&
|
||||||
_msg "${PAS}enabled Guix daemon via sysv"
|
_msg "${PAS}enabled Guix daemon via sysv"
|
||||||
;;
|
;;
|
||||||
|
openrc)
|
||||||
|
{ mkdir -p /etc/init.d;
|
||||||
|
cp "${ROOT_HOME}/.config/guix/current/etc/openrc/guix-daemon" \
|
||||||
|
/etc/init.d/guix-daemon;
|
||||||
|
chmod 775 /etc/init.d/guix-daemon;
|
||||||
|
|
||||||
|
rc-update add guix-daemon default &&
|
||||||
|
rc-service guix-daemon start; } &&
|
||||||
|
_msg "${PAS}enabled Guix daemon via OpenRC"
|
||||||
|
;;
|
||||||
NA|*)
|
NA|*)
|
||||||
_msg "${ERR}unsupported init system; run the daemon manually:"
|
_msg "${ERR}unsupported init system; run the daemon manually:"
|
||||||
echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild"
|
echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild"
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/sbin/openrc-run
|
||||||
|
# GNU Guix --- Functional package management for GNU
|
||||||
|
# Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
|
||||||
|
#
|
||||||
|
# This file is part of GNU Guix.
|
||||||
|
#
|
||||||
|
# GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
# your option) any later version.
|
||||||
|
#
|
||||||
|
# GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
export GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale
|
||||||
|
export LC_ALL=en_US.utf8
|
||||||
|
command="@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon"
|
||||||
|
command_args="--build-users-group=guixbuild"
|
||||||
|
command_background="yes"
|
||||||
|
pidfile="/var/run/guix-daemon.pid"
|
||||||
|
|
||||||
|
output_log="/var/log/guix-daemon-stdout.log"
|
||||||
|
error_log="/var/log/guix-daemon-stderr.log"
|
17
nix/local.mk
17
nix/local.mk
|
@ -180,6 +180,17 @@ etc/init.d/guix-daemon: etc/init.d/guix-daemon.in \
|
||||||
"$<" > "$@.tmp"; \
|
"$<" > "$@.tmp"; \
|
||||||
mv "$@.tmp" "$@"
|
mv "$@.tmp" "$@"
|
||||||
|
|
||||||
|
# The service script for openrc.
|
||||||
|
openrcservicedir = $(sysconfdir)/init.d
|
||||||
|
nodist_openrcservice_DATA = etc/openrc/guix-daemon
|
||||||
|
|
||||||
|
etc/openrc/guix-daemon: etc/openrc/guix-daemon.in \
|
||||||
|
$(top_builddir)/config.status
|
||||||
|
$(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \
|
||||||
|
$(SED) -e 's|@''localstatedir''@|$(localstatedir)|' < \
|
||||||
|
"$<" > "$@.tmp"; \
|
||||||
|
mv "$@.tmp" "$@"
|
||||||
|
|
||||||
# The '.conf' jobs for Upstart.
|
# The '.conf' jobs for Upstart.
|
||||||
upstartjobdir = $(libdir)/upstart/system
|
upstartjobdir = $(libdir)/upstart/system
|
||||||
nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf
|
nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf
|
||||||
|
@ -194,7 +205,8 @@ etc/guix-%.conf: etc/guix-%.conf.in \
|
||||||
CLEANFILES += \
|
CLEANFILES += \
|
||||||
$(nodist_systemdservice_DATA) \
|
$(nodist_systemdservice_DATA) \
|
||||||
$(nodist_upstartjob_DATA) \
|
$(nodist_upstartjob_DATA) \
|
||||||
$(nodist_sysvinitservice_DATA)
|
$(nodist_sysvinitservice_DATA) \
|
||||||
|
$(nodist_openrcservice_DATA)
|
||||||
|
|
||||||
EXTRA_DIST += \
|
EXTRA_DIST += \
|
||||||
%D%/AUTHORS \
|
%D%/AUTHORS \
|
||||||
|
@ -203,7 +215,8 @@ EXTRA_DIST += \
|
||||||
etc/guix-daemon.conf.in \
|
etc/guix-daemon.conf.in \
|
||||||
etc/guix-publish.service.in \
|
etc/guix-publish.service.in \
|
||||||
etc/guix-publish.conf.in \
|
etc/guix-publish.conf.in \
|
||||||
etc/init.d/guix-daemon.in
|
etc/init.d/guix-daemon.in \
|
||||||
|
etc/openrc/guix-daemon.in
|
||||||
|
|
||||||
if CAN_RUN_TESTS
|
if CAN_RUN_TESTS
|
||||||
|
|
||||||
|
|
Reference in New Issue