From ed11c6a4d4da379ff9ebccb7a0340e64232efabb Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 27 Jun 2010 01:36:25 +0200 Subject: [PATCH] build-sys: install systemd service files --- Makefile.am | 3 ++- avahi-daemon/.gitignore | 2 ++ avahi-daemon/Makefile.am | 23 +++++++++++++++- avahi-daemon/avahi-daemon.service.in | 31 ++++++++++++++++++++++ avahi-daemon/avahi-daemon.socket.in | 27 +++++++++++++++++++ avahi-daemon/org.freedesktop.Avahi.service | 24 +++++++++++++++++ avahi-dnsconfd/.gitignore | 1 + avahi-dnsconfd/Makefile.am | 14 ++++++++-- avahi-dnsconfd/avahi-dnsconfd.service.in | 30 +++++++++++++++++++++ configure.ac | 10 +++++++ 10 files changed, 161 insertions(+), 4 deletions(-) create mode 100644 avahi-daemon/avahi-daemon.service.in create mode 100644 avahi-daemon/avahi-daemon.socket.in create mode 100644 avahi-daemon/org.freedesktop.Avahi.service create mode 100644 avahi-dnsconfd/avahi-dnsconfd.service.in diff --git a/Makefile.am b/Makefile.am index 168c556..982a83d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -222,7 +222,8 @@ avahi.devhelp: doxygen-run MOSTLYCLEANFILES = $(DX_CLEANFILES) DISTCHECK_CONFIGURE_FLAGS = \ - --disable-monodoc + --disable-monodoc \ + --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) homepage: $(MAKE) -C man diff --git a/avahi-daemon/.gitignore b/avahi-daemon/.gitignore index bb2aeab..f1a6f8d 100644 --- a/avahi-daemon/.gitignore +++ b/avahi-daemon/.gitignore @@ -1,3 +1,5 @@ +avahi-daemon.service +avahi-daemon.socket avahi-daemon avahi-dbus.conf ini-file-parser-test diff --git a/avahi-daemon/Makefile.am b/avahi-daemon/Makefile.am index 04843fb..b5d2bf4 100644 --- a/avahi-daemon/Makefile.am +++ b/avahi-daemon/Makefile.am @@ -26,6 +26,7 @@ if HAVE_XML pkgsysconfdir=$(sysconfdir)/avahi servicedir=$(pkgsysconfdir)/services introspectiondir=$(datadir)/dbus-1/interfaces +dbussystemservicesdir=$(datadir)/dbus-1/system-services AM_CFLAGS+= \ -DAVAHI_DAEMON_RUNTIME_DIR=\"$(avahi_runtime_dir)/avahi-daemon/\" \ @@ -75,6 +76,24 @@ dist_service_DATA = \ dist_pkgdata_DATA = \ avahi-service.dtd +%.service: %.service.in + $(AM_V_GEN)sed -e 's,@sbindir\@,$(sbindir),g' $< > $@ + +%.socket: %.socket.in + $(AM_V_GEN)sed -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@avahi_runtime_dir\@,$(avahi_runtime_dir),g' $< > $@ + +if HAVE_SYSTEMD +systemdsystemunit_DATA = \ + avahi-daemon.service \ + avahi-daemon.socket + +dist_dbussystemservices_DATA = \ + org.freedesktop.Avahi.service +endif + +CLEANFILES = $(systemdsystemunit_DATA) + if ENABLE_CHROOT avahi_daemon_SOURCES += \ @@ -139,7 +158,9 @@ EXTRA_DIST = \ hosts \ example.service \ introspect.dtd \ - introspect.xsl + introspect.xsl \ + avahi-daemon.service.in \ + avahi-daemon.socket.in xmllint: xmllint --noout --valid example.service diff --git a/avahi-daemon/avahi-daemon.service.in b/avahi-daemon/avahi-daemon.service.in new file mode 100644 index 0000000..d5a9dd4 --- /dev/null +++ b/avahi-daemon/avahi-daemon.service.in @@ -0,0 +1,31 @@ +# This file is part of avahi. +# +# avahi is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# avahi 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 Lesser General Public +# License along with avahi; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +[Unit] +Requires=basic.target avahi-daemon.socket +After=basic.target syslog.target avahi-daemon.socket +Conflicts=shutdown.target + +[Service] +Type=dbus +BusName=org.freedesktop.Avahi +ExecStart=@sbindir@/avahi-daemon -s +ExecReload=@sbindir@/avahi-daemon -r + +[Install] +WantedBy=multi-user.target +Also=avahi-daemon.socket diff --git a/avahi-daemon/avahi-daemon.socket.in b/avahi-daemon/avahi-daemon.socket.in new file mode 100644 index 0000000..b8e6b79 --- /dev/null +++ b/avahi-daemon/avahi-daemon.socket.in @@ -0,0 +1,27 @@ +# This file is part of avahi. +# +# avahi is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# avahi 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 Lesser General Public +# License along with avahi; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +[Unit] +After=sysinit.target +Before=sockets.target +Conflicts=shutdown.target + +[Socket] +ListenStream=@avahi_runtime_dir@/avahi-daemon/socket + +[Install] +WantedBy=sockets.target diff --git a/avahi-daemon/org.freedesktop.Avahi.service b/avahi-daemon/org.freedesktop.Avahi.service new file mode 100644 index 0000000..ebc5f31 --- /dev/null +++ b/avahi-daemon/org.freedesktop.Avahi.service @@ -0,0 +1,24 @@ +# This file is part of avahi. +# +# avahi is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# avahi 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 Lesser General Public +# License along with avahi; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +[D-BUS Service] +Name=org.freedesktop.Avahi +SystemdService=avahi-daemon.service + +# This service should not be bus activated if systemd isn't running, +# so that activation won't conflict with the init script startup. +Exec=/bin/false diff --git a/avahi-dnsconfd/.gitignore b/avahi-dnsconfd/.gitignore index 581c3ce..2c6d07f 100644 --- a/avahi-dnsconfd/.gitignore +++ b/avahi-dnsconfd/.gitignore @@ -1 +1,2 @@ +avahi-dnsconfd.service avahi-dnsconfd diff --git a/avahi-dnsconfd/Makefile.am b/avahi-dnsconfd/Makefile.am index dddf99e..4e74429 100644 --- a/avahi-dnsconfd/Makefile.am +++ b/avahi-dnsconfd/Makefile.am @@ -15,6 +15,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. +EXTRA_DIST=avahi-dnsconfd.action avahi-dnsconfd.service.in + if HAVE_XML if HAVE_LIBDAEMON @@ -37,7 +39,15 @@ avahi_dnsconfd_LDADD = $(AM_LDADD) ../avahi-common/libavahi-common.la $(LIBDAEMO pkgsysconf_SCRIPTS=avahi-dnsconfd.action -endif +%.service: %.service.in + $(AM_V_GEN)sed -e 's,@sbindir\@,$(sbindir),g' $< > $@ + +if HAVE_SYSTEMD +systemdsystemunit_DATA = \ + avahi-dnsconfd.service endif -EXTRA_DIST=avahi-dnsconfd.action +CLEANFILES = $(systemdsystemunit_DATA) + +endif +endif diff --git a/avahi-dnsconfd/avahi-dnsconfd.service.in b/avahi-dnsconfd/avahi-dnsconfd.service.in new file mode 100644 index 0000000..2db23d1 --- /dev/null +++ b/avahi-dnsconfd/avahi-dnsconfd.service.in @@ -0,0 +1,30 @@ +# This file is part of avahi. +# +# avahi is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# avahi 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 Lesser General Public +# License along with avahi; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +[Unit] +Requires=basic.target avahi-daemon.socket avahi-daemon.service +After=basic.target syslog.target avahi-daemon.socket +Conflicts=shutdown.target + +[Service] +Type=simple +ExecStart=@sbindir@/avahi-dnsconfd -s +ExecReload=@sbindir@/avahi-dnsconfd -r + +[Install] +WantedBy=multi-user.target +Also=avahi-daemon.socket diff --git a/configure.ac b/configure.ac index d4f45ea..42d7d22 100644 --- a/configure.ac +++ b/configure.ac @@ -1067,6 +1067,15 @@ AC_ARG_ENABLE(compat-howl, AM_CONDITIONAL([ENABLE_COMPAT_HOWL], [test "x$ENABLE_COMPAT_HOWL" = "xyes"]) +# +# systemd +# +AC_ARG_WITH([systemdsystemunitdir], + AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), + [], + [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) +AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) +AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"]) # ========================================================================== AC_CONFIG_FILES([ @@ -1150,6 +1159,7 @@ echo " Enable chroot(): ${enable_chroot} Enable Linux inotify: ${have_inotify} Enable stack-smashing protection: ${enable_ssp} + systemd unit directory: ${with_systemdsystemunitdir} " BUILD_DAEMON="no (You need libdaemon and expat/bsdxml!)" -- 2.39.5