diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile.am | 7 | ||||
-rw-r--r-- | configure.ac | 15 | ||||
-rw-r--r-- | data/Makefile.am | 26 | ||||
-rw-r--r-- | data/NetworkManager.service.in | 12 | ||||
-rw-r--r-- | data/org.freedesktop.NetworkManager.service.in | 11 |
6 files changed, 73 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore index 22f990911d..2fee0804a2 100644 --- a/.gitignore +++ b/.gitignore @@ -108,4 +108,7 @@ m4/lt*.m4 policy/org.freedesktop.network-manager-settings.system.policy policy/org.freedesktop.NetworkManager.policy +data/NetworkManager.service +data/org.freedesktop.NetworkManager.service + cli/src/nmcli diff --git a/Makefile.am b/Makefile.am index 7e34571218..64be5c8526 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,6 +10,7 @@ SUBDIRS = \ cli \ tools \ policy \ + data \ initscript \ test \ po \ @@ -24,7 +25,11 @@ EXTRA_DIST = \ intltool-merge.in \ intltool-update.in -DISTCHECK_CONFIGURE_FLAGS = --with-tests=yes --with-docs=yes --with-udev-dir=$$dc_install_base/lib/udev +DISTCHECK_CONFIGURE_FLAGS = \ + --with-tests=yes \ + --with-docs=yes \ + --with-udev-dir=$$dc_install_base/lib/udev \ + --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) DISTCLEANFILES = intltool-extract intltool-merge intltool-update diff --git a/configure.ac b/configure.ac index 3217734dcc..cfc2122b08 100644 --- a/configure.ac +++ b/configure.ac @@ -237,6 +237,14 @@ else fi AC_SUBST(UDEV_BASE_DIR) +# 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"]) + PKG_CHECK_MODULES(LIBNL, libnl-1 >= 1.0-pre8) AC_SUBST(LIBNL_CFLAGS) AC_SUBST(LIBNL_LIBS) @@ -528,6 +536,7 @@ man/nm-online.1 man/nmcli.1 po/Makefile.in policy/Makefile +data/Makefile docs/Makefile docs/libnm-glib/Makefile docs/libnm-util/Makefile @@ -555,6 +564,12 @@ else echo dhcpcd support: no fi +if test -n "${with_systemdsystemunitdir}"; then + echo systemd support: ${with_systemdsystemunitdir} +else + echo systemd support: no +fi + echo echo Building documentation: ${with_docs} echo Building tests: ${with_tests} diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000000..f91d3a8255 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,26 @@ + +if HAVE_SYSTEMD +systemdsystemunit_DATA = NetworkManager.service + +NetworkManager.service: NetworkManager.service.in + $(edit) $< >$@ + +servicedir = $(datadir)/dbus-1/system-services +service_in_files = org.freedesktop.NetworkManager.service.in +service_DATA = $(service_in_files:.service.in=.service) + +$(service_DATA): $(service_in_files) Makefile + $(edit) $< >$@ +endif + +edit = sed \ + -e 's|@sbindir[@]|$(sbindir)|g' \ + -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ + -e 's|@localstatedir[@]|$(localstatedir)|g' + +EXTRA_DIST = \ + NetworkManager.service.in \ + org.freedesktop.NetworkManager.service.in + +CLEANFILES = NetworkManager.service org.freedesktop.NetworkManager.service + diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in new file mode 100644 index 0000000000..c2741fcc19 --- /dev/null +++ b/data/NetworkManager.service.in @@ -0,0 +1,12 @@ +[Unit] +Description=Network Manager +After=syslog.target + +[Service] +Type=dbus +BusName=org.freedesktop.NetworkManager +ExecStart=@sbindir@/NetworkManager --no-daemon + +[Install] +WantedBy=network.target multi-user.target +Alias=NetworkManager-by-dbus diff --git a/data/org.freedesktop.NetworkManager.service.in b/data/org.freedesktop.NetworkManager.service.in new file mode 100644 index 0000000000..7434903bad --- /dev/null +++ b/data/org.freedesktop.NetworkManager.service.in @@ -0,0 +1,11 @@ +# This D-Bus service activation file is only for systemd support since +# an auto-activated NetworkManager would be quite surprising for those people +# who have NM installed but turned off. Thus the Exec path available to +# D-Bus is /bin/false, but systemd knows the real Exec path due to the NM +# systemd .service file. + +[D-BUS Service] +Name=org.freedesktop.NetworkManager +Exec=/bin/false +User=root +SystemdService=NetworkManager-by-dbus.service |