From 61b441dc995c1e6dd21fd85e2014dd981e9c9350 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Mon, 6 Nov 2017 22:35:28 +0100 Subject: [PATCH] Support autoconf's --runstatedir option. Put the PID file in @runstatedir@ instead of @localstatedir@/run. This requires autoconf 2.70, which is not released yet, so add a fallback to use @localstatedir@/run if @runstatedir@ is not set. --- configure.ac | 5 +++++ doc/Makefile.am | 1 + doc/tinc-gui.8.in | 2 +- doc/tinc.8.in | 2 +- doc/tinc.conf.5.in | 4 ++-- doc/tinc.texi | 11 +++++++---- doc/tincd.8.in | 4 ++-- doc/tincinclude.texi.in | 1 + src/Makefile.am | 2 +- src/uml_device.c | 2 +- src/vde_device.c | 2 +- 11 files changed, 23 insertions(+), 13 deletions(-) diff --git a/configure.ac b/configure.ac index 39abe9d..89087da 100644 --- a/configure.ac +++ b/configure.ac @@ -255,6 +255,11 @@ AC_ARG_ENABLE(jumbograms, ] ) +dnl Ensure runstatedir is set if we are using a version of autoconf that does not suppport it +if test "x$runstatedir" = "x"; then + AC_SUBST([runstatedir], ['${localstatedir}/run']) +fi + AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile gui/Makefile test/Makefile systemd/Makefile]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index b3af522..c0187f5 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -24,6 +24,7 @@ substitute = sed \ -e s,'@PACKAGE\@',"$(PACKAGE)",g \ -e s,'@VERSION\@',"$(VERSION)",g \ -e s,'@sysconfdir\@',"$(sysconfdir)",g \ + -e s,'@runstatedir\@',"$(runstatedir)",g \ -e s,'@localstatedir\@',"$(localstatedir)",g tincd.8: tincd.8.in diff --git a/doc/tinc-gui.8.in b/doc/tinc-gui.8.in index f5ebadb..e554a85 100644 --- a/doc/tinc-gui.8.in +++ b/doc/tinc-gui.8.in @@ -30,7 +30,7 @@ Use the cookie from .Ar FILENAME to authenticate with a running tinc daemon. If unspecified, the default is -.Pa @localstatedir@/run/tinc. Ns Ar NETNAME Ns Pa .pid. +.Pa @runstatedir@/tinc. Ns Ar NETNAME Ns Pa .pid. .It Fl -help Display short list of options. .El diff --git a/doc/tinc.8.in b/doc/tinc.8.in index 6644add..eaad626 100644 --- a/doc/tinc.8.in +++ b/doc/tinc.8.in @@ -54,7 +54,7 @@ Use the cookie from .Ar FILENAME to authenticate with a running tinc daemon. If unspecified, the default is -.Pa @localstatedir@/run/tinc. Ns Ar NETNAME Ns Pa .pid. +.Pa @runstatedir@/tinc. Ns Ar NETNAME Ns Pa .pid. .It Fl -force Force some commands to work despite warnings. .It Fl -help diff --git a/doc/tinc.conf.5.in b/doc/tinc.conf.5.in index 53440a1..3ab40a5 100644 --- a/doc/tinc.conf.5.in +++ b/doc/tinc.conf.5.in @@ -242,7 +242,7 @@ Packets received for the local node are written to it. Create a UNIX socket with the filename specified by .Va Device , or -.Pa @localstatedir@/run/ Ns Ar NETNAME Ns Pa .umlsocket +.Pa @runstatedir@/ Ns Ar NETNAME Ns Pa .umlsocket if not specified. .Nm tinc will wait for a User Mode Linux instance to connect to this socket. @@ -251,7 +251,7 @@ Uses the libvdeplug library to connect to a Virtual Distributed Ethernet switch, using the UNIX socket specified by .Va Device , or -.Pa @localstatedir@/run/vde.ctl +.Pa @runstatedir@/vde.ctl if not specified. .El Also, in case tinc does not seem to correctly interpret packets received from the virtual network device, diff --git a/doc/tinc.texi b/doc/tinc.texi index 0c2f8c0..954a643 100644 --- a/doc/tinc.texi +++ b/doc/tinc.texi @@ -967,7 +967,7 @@ Packets received for the local node are written to it. @cindex UML @item uml (not compiled in by default) Create a UNIX socket with the filename specified by -@var{Device}, or @file{@value{localstatedir}/run/@var{netname}.umlsocket} +@var{Device}, or @file{@value{runstatedir}/@var{netname}.umlsocket} if not specified. Tinc will wait for a User Mode Linux instance to connect to this socket. @@ -975,7 +975,7 @@ Tinc will wait for a User Mode Linux instance to connect to this socket. @item vde (not compiled in by default) Uses the libvdeplug library to connect to a Virtual Distributed Ethernet switch, using the UNIX socket specified by -@var{Device}, or @file{@value{localstatedir}/run/vde.ctl} +@var{Device}, or @file{@value{runstatedir}/vde.ctl} if not specified. @end table @@ -1985,7 +1985,7 @@ Specifying . for @var{netname} is the same as not specifying any @var{netname}. @item --pidfile=@var{filename} Store a cookie in @var{filename} which allows tinc to authenticate. If unspecified, the default is -@file{@value{localstatedir}/run/tinc.@var{netname}.pid}. +@file{@value{runstatedir}/tinc.@var{netname}.pid}. @item -o, --option=[@var{HOST}.]@var{KEY}=@var{VALUE} Without specifying a @var{HOST}, this will set server configuration variable @var{KEY} to @var{VALUE}. @@ -2003,6 +2003,9 @@ This option is not supported on all platforms. Write log entries to a file instead of to the system logging facility. If @var{file} is omitted, the default is @file{@value{localstatedir}/log/tinc.@var{netname}.log}. +@item --pidfile=@var{file} +Write PID to @var{file} instead of @file{@value{runstatedir}/tinc.@var{netname}.pid}. + @item --bypass-security Disables encryption and authentication. Only useful for debugging. @@ -2301,7 +2304,7 @@ Use configuration for net @var{netname}. @xref{Multiple networks}. @item --pidfile=@var{filename} Use the cookie from @var{filename} to authenticate with a running tinc daemon. If unspecified, the default is -@file{@value{localstatedir}/run/tinc.@var{netname}.pid}. +@file{@value{runstatedir}/tinc.@var{netname}.pid}. @item --force Force some commands to work despite warnings. diff --git a/doc/tincd.8.in b/doc/tincd.8.in index 22c54a7..a14eb4e 100644 --- a/doc/tincd.8.in +++ b/doc/tincd.8.in @@ -100,7 +100,7 @@ to authenticate. If .Ar FILE is omitted, the default is -.Pa @localstatedir@/run/tinc. Ns Ar NETNAME Ns Pa .pid. +.Pa @runstatedir@/tinc. Ns Ar NETNAME Ns Pa .pid. .It Fl -bypass-security Disables encryption and authentication of the meta protocol. Only useful for debugging. @@ -173,7 +173,7 @@ This will log all network traffic over the virtual private network. Directory containing the configuration files tinc uses. For more information, see .Xr tinc.conf 5 . -.It Pa @localstatedir@/run/tinc. Ns Ar NETNAME Ns Pa .pid +.It Pa @runstatedir@/tinc. Ns Ar NETNAME Ns Pa .pid The PID of the currently running .Nm is stored in this file. diff --git a/doc/tincinclude.texi.in b/doc/tincinclude.texi.in index da4adc5..01fee35 100644 --- a/doc/tincinclude.texi.in +++ b/doc/tincinclude.texi.in @@ -2,3 +2,4 @@ @set PACKAGE @PACKAGE@ @set sysconfdir @sysconfdir@ @set localstatedir @localstatedir@ +@set runstatedir @runstatedir@ diff --git a/src/Makefile.am b/src/Makefile.am index 7be46d9..253e02a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -284,4 +284,4 @@ if TUNEMU LIBS += -lpcap endif -AM_CFLAGS = -DCONFDIR=\"$(sysconfdir)\" -DLOCALSTATEDIR=\"$(localstatedir)\" -DSBINDIR=\"$(sbindir)\" -iquote. +AM_CFLAGS = -DCONFDIR=\"$(sysconfdir)\" -DRUNSTATEDIR=\"$(runstatedir)\" -DLOCALSTATEDIR=\"$(localstatedir)\" -DSBINDIR=\"$(sbindir)\" -iquote. diff --git a/src/uml_device.c b/src/uml_device.c index 3e7b821..3f52104 100644 --- a/src/uml_device.c +++ b/src/uml_device.c @@ -60,7 +60,7 @@ static bool setup_device(void) { struct timeval tv; if(!get_config_string(lookup_config(config_tree, "Device"), &device)) { - xasprintf(&device, LOCALSTATEDIR "/run/%s.umlsocket", identname); + xasprintf(&device, RUNSTATEDIR "/%s.umlsocket", identname); } get_config_string(lookup_config(config_tree, "Interface"), &iface); diff --git a/src/vde_device.c b/src/vde_device.c index e2692eb..4cbf712 100644 --- a/src/vde_device.c +++ b/src/vde_device.c @@ -45,7 +45,7 @@ static bool setup_device(void) { } if(!get_config_string(lookup_config(config_tree, "Device"), &device)) { - xasprintf(&device, LOCALSTATEDIR "/run/vde.ctl"); + xasprintf(&device, RUNSTATEDIR "/vde.ctl"); } get_config_string(lookup_config(config_tree, "Interface"), &iface); -- 2.25.1