http://lwn.net/Articles/436012/ documents that many distros are now preferring to use /run rather than /var/run for storage of pid files and other per-process temporary files that must not be cleaned out during arbitrary TMPDIR sweeps. As such, the GNU Coding Standards were recently changed to recommend a new configure option to make it easy to choose this directory at configure time. This patch adds support for the option to all configure scripts built by autoconf.
* general.m4 (_AC_INIT_PARSE_ARGS): Add new directory option. (_AC_INIT_HELP): Document it. * doc/autoconf.texi (Installation Directory Variables): Document new option. (Site Defaults): Mention typical use within a distro. * NEWS: Mention the addition. Signed-off-by: Eric Blake <ebl...@redhat.com> --- I don't plan to push this until the make-stds.texi changes actually go live (particarly in case we change our minds on what to name it, but also to give a chance for anyone to review the wording used in my documentation below). But this is all the more autoconf has to do in order to support the new option. NEWS | 5 +++++ doc/autoconf.texi | 14 +++++++++++++- lib/autoconf/general.m4 | 13 ++++++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index de9d915..130cf3b 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,11 @@ GNU Autoconf NEWS - User visible changes. * Noteworthy changes in release ?.? (????-??-??) [?] +** Configure scripts now supports a '--runstatedir' option, which + defaults to '${localstatedir}/run', but can be used to place + per-process temporary runtime files (such as pid files) into '/run' + instead of '/var/run'. + ** The use of the long-deprecated name 'configure.in' for the autoconf input file now elicits a warning in the 'obsolete' category. diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 26e7b17..4932067 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -2826,7 +2826,18 @@ Installation Directory Variables @defvar localstatedir @ovindex localstatedir -The directory for installing modifiable single-machine data. +The directory for installing modifiable single-machine data. Content in +this directory typically survives a reboot. +@end defvar + +@defvar runstatedir +@ovindex runstatedir +The directory for installing temporary modifiable single-machine data. +Content in this directory survives as long as the process is running +(such as pid files), as contrasted with @file{/tmp} that may be +periodically cleaned. Conversely, this directory is typically cleaned +on a reboot. By default, this is a subdirectory of +@code{localstatedir}. @end defvar @defvar mandir @@ -22606,6 +22617,7 @@ Site Defaults test "$exec_prefix" = NONE && exec_prefix=/usr/local/gnu test "$sharedstatedir" = '$@{prefix@}/com' && sharedstatedir=/var test "$localstatedir" = '$@{prefix@}/var' && localstatedir=/var +test "$runstatedir" = '$@{localstatedir@}/run' && runstatedir=/run # Give Autoconf 2.x generated configure scripts a shared default # cache file for feature test results, architecture-specific. diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 index 70b0168..1ce9922 100644 --- a/lib/autoconf/general.m4 +++ b/lib/autoconf/general.m4 @@ -586,6 +586,7 @@ AC_SUBST([datadir], ['${datarootdir}'])dnl AC_SUBST([sysconfdir], ['${prefix}/etc'])dnl AC_SUBST([sharedstatedir], ['${prefix}/com'])dnl AC_SUBST([localstatedir], ['${prefix}/var'])dnl +AC_SUBST([runstatedir], ['${localstatedir}/run'])dnl AC_SUBST([includedir], ['${prefix}/include'])dnl AC_SUBST([oldincludedir], ['/usr/include'])dnl AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], @@ -812,6 +813,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -921,7 +931,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1058,6 +1068,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] -- 1.8.3.1