Add tmpfiles.d support for unconditionally creating a symlink from
[/var]/run/connman/resolv.conf to /etc/resolv.conf.

To keep the same behavior as before, the configuration file is
installed to tmpfiles.d. If /etc/resolv.conf behavior needs to be
specified differently by a distribution, do not install the
tmpfiles.d configuration file.
---
 Makefile.am                        | 17 +++++++++++++----
 configure.ac                       |  8 ++++++++
 scripts/connman_resolvconf.conf.in |  1 +
 3 files changed, 22 insertions(+), 4 deletions(-)
 create mode 100644 scripts/connman_resolvconf.conf.in

diff --git a/Makefile.am b/Makefile.am
index 96abab7..95082c1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -63,9 +63,11 @@ endif
 
 if SYSTEMD
 systemdunitdir = @SYSTEMD_UNITDIR@
-
 systemdunit_DATA = src/connman.service
 
+tmpfilesdir = @SYSTEMD_TMPFILESDIR@
+nodist_tmpfiles_DATA = scripts/connman_resolvconf.conf
+
 if VPN
 systemdunit_DATA += vpn/connman-vpn.service
 endif
@@ -153,7 +155,8 @@ vpn_connman_vpnd_LDFLAGS = -Wl,--export-dynamic \
                                -Wl,--version-script=$(srcdir)/vpn/vpn.ver
 endif
 
-BUILT_SOURCES = $(local_headers) src/builtin.h $(service_files) scripts/connman
+BUILT_SOURCES = $(local_headers) src/builtin.h $(service_files) \
+       scripts/connman scripts/connman_resolvconf.conf
 
 if VPN
 BUILT_SOURCES += vpn/builtin.h
@@ -386,7 +389,8 @@ EXTRA_DIST += doc/overview-api.txt doc/behavior-api.txt \
                                doc/connman.8.in doc/connman-vpn.8.in
 
 EXTRA_DIST += src/main.conf \
-               src/eduroam.config
+               src/eduroam.config \
+               scripts/connman_resolvconf.conf.in
 
 MANUAL_PAGES += doc/connmanctl.1 doc/connman.conf.5 \
                doc/connman-service.config.5 doc/connman-vpn.conf.5 \
@@ -457,7 +461,8 @@ do_subst = $(AM_V_GEN)$(SED) \
                -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
                -e 's,[@]storagedir[@],$(storagedir),g' \
                -e 's,[@]vpn_storagedir[@],$(vpn_storagedir),g' \
-               -e 's,[@]localstatedir[@],$(localstatedir),g'
+               -e 's,[@]localstatedir[@],$(localstatedir),g' \
+               -e 's,[@]runstatedir[@],$(runstatedir),g'
 
 %.1 : %.1.in
        $(AM_V_at)$(MKDIR_P) $(dir $@)
@@ -479,6 +484,10 @@ scripts/connman: scripts/connman.in Makefile
        $(AM_V_at)$(MKDIR_P) $(dir $@)
        $(do_subst) < $< > $@
 
+scripts/connman_resolvconf.conf: scripts/connman_resolvconf.conf.in
+       $(AM_V_at)$(MKDIR_P) $(dir $@)
+       $(do_subst) < $< > $@
+
 include/connman/version.h: include/version.h
        $(AM_V_at)$(MKDIR_P) include/connman
        $(AM_V_GEN)$(LN_S) $(abs_top_builddir)/$< $@
diff --git a/configure.ac b/configure.ac
index 51482cb..b51d6b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -254,6 +254,14 @@ if (test -n "${path_systemdunit}"); then
 fi
 AM_CONDITIONAL(SYSTEMD, test -n "${path_systemdunit}")
 
+AC_ARG_WITH([tmpfilesdir], AC_HELP_STRING([--with-tmpfilesdir=DIR],
+       [path to systemd tmpfiles.d directory]), [path_tmpfiles=${withval}],
+               [path_tmpfiles="`$PKG_CONFIG --variable=tmpfilesdir systemd`"])
+if (test -n "${path_tmpfiles}"); then
+       SYSTEMD_TMPFILESDIR="${path_tmpfiles}"
+       AC_SUBST(SYSTEMD_TMPFILESDIR)
+fi
+
 PKG_CHECK_MODULES(XTABLES, xtables >= 1.4.11, dummy=yes,
                                AC_MSG_ERROR(Xtables library is required))
 AC_SUBST(XTABLES_CFLAGS)
diff --git a/scripts/connman_resolvconf.conf.in 
b/scripts/connman_resolvconf.conf.in
new file mode 100644
index 0000000..e47dc07
--- /dev/null
+++ b/scripts/connman_resolvconf.conf.in
@@ -0,0 +1 @@
+L+     /etc/resolv.conf        - - - - @runstatedir@/connman/resolv.conf
-- 
2.1.4

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to