~ruther/guix-local

332d7903f52c2bf3741b04ac2d01cd9018b70800 — Hartmut Goebel 9 years ago b7230de
Add system start-up files for "guix publish".

* .gitignore: add etc/guix-publish.conf and /etc/guix-publish.service.
* etc/guix-publish.conf.in: New file.
* etc/guix-publish.service.in: New file.
* nix/local.mk (etc/guix-%.service, etc/guix-%.conf): Generalized former
  build-rules for by using patterns.
  (nodist_systemdservice_DATA): Add etc/guix-publish.service, update
  comment.
  (nodist_upstartjob_DATA): Add etc/guix-publish.conf, update comment.
* doc/guix.texi (Invoking guix publish): Add description for enabling
  "guix publish" on host distros using the new files.
5 files changed, 65 insertions(+), 8 deletions(-)

M .gitignore
M doc/guix.texi
A etc/guix-publish.conf.in
A etc/guix-publish.service.in
M nix/local.mk
M .gitignore => .gitignore +2 -0
@@ 50,6 50,8 @@
/emacs/guix-helper.scm
/etc/guix-daemon.conf
/etc/guix-daemon.service
/etc/guix-publish.conf
/etc/guix-publish.service
/guix-daemon
/guix-register
/guix/config.scm

M doc/guix.texi => doc/guix.texi +24 -0
@@ 6055,6 6055,30 @@ add a call to @code{guix-publish-service} in the @code{services} field
of the @code{operating-system} declaration (@pxref{guix-publish-service,
@code{guix-publish-service}}).

If you are instead running Guix on a ``foreign distro'', follow these
instructions:”

@itemize
@item
If your host distro uses the systemd init system:

@example
# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \
        /etc/systemd/system/
# systemctl start guix-publish && systemctl enable guix-publish
@end example

@item
If your host distro uses the Upstart init system:

@example
# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/
# start guix-publish
@end example

@item
Otherwise, proceed similarly with your distro's init system.
@end itemize

@node Invoking guix challenge
@section Invoking @command{guix challenge}

A etc/guix-publish.conf.in => etc/guix-publish.conf.in +12 -0
@@ 0,0 1,12 @@
# This is a "job" for the Upstart init system to launch 'guix-daemon'.
# Drop it in /etc/init to have 'guix-daemon' automatically started.

description "Publish the GNU Guix store"

start on runlevel [2345]

stop on runlevel [016]

task

exec @bindir@/guix publish --user=nobody --port=8181

A etc/guix-publish.service.in => etc/guix-publish.service.in +19 -0
@@ 0,0 1,19 @@
# This is a "service unit file" for the systemd init system to launch
# 'guix publish'.  Drop it in /etc/systemd/system or similar to have
# 'guix publish' automatically started.

[Unit]
Description=Publish the GNU Guix store

[Service]
ExecStart=@bindir@/guix publish --user=nobody --port=8181
Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale
RemainAfterExit=yes
StandardOutput=syslog
StandardError=syslog

# See <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00608.html>.
TasksMax=1024

[Install]
WantedBy=multi-user.target

M nix/local.mk => nix/local.mk +8 -8
@@ 183,26 183,26 @@ endif BUILD_DAEMON_OFFLOAD
nodist_libexec_SCRIPTS =			\
  %D%/scripts/guix-authenticate

# The '.service' file for systemd.
# The '.service' files for systemd.
systemdservicedir = $(libdir)/systemd/system
nodist_systemdservice_DATA = etc/guix-daemon.service
nodist_systemdservice_DATA = etc/guix-daemon.service etc/guix-publish.service

etc/guix-daemon.service: etc/guix-daemon.service.in	\
etc/guix-%.service: etc/guix-%.service.in	\
			 $(top_builddir)/config.status
	$(AM_V_GEN)$(MKDIR_P) "`dirname $@`";				\
	$(SED) -e 's|@''bindir''@|$(bindir)|' <				\
	       "$(srcdir)/etc/guix-daemon.service.in" > "$@.tmp";	\
	       "$(srcdir)/$<" > "$@.tmp";	\
	mv "$@.tmp" "$@"

# The '.conf' job for Upstart.
# The '.conf' jobs for Upstart.
upstartjobdir = $(libdir)/upstart/system
nodist_upstartjob_DATA = etc/guix-daemon.conf
nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf

etc/guix-daemon.conf: etc/guix-daemon.conf.in	\
etc/guix-%.conf: etc/guix-%.conf.in	\
			 $(top_builddir)/config.status
	$(AM_V_GEN)$(MKDIR_P) "`dirname $@`";				\
	$(SED) -e 's|@''bindir''@|$(bindir)|' <				\
	       "$(srcdir)/etc/guix-daemon.conf.in" > "$@.tmp";		\
	       "$(srcdir)/$<" > "$@.tmp";		\
	mv "$@.tmp" "$@"

EXTRA_DIST +=					\