Browse Source

build: use --runstatedir instead of --localstatedir

The util-linux code was previously aligned to use @localstatedir@ and
the util-linux build system was set to override the default to use /run.

Current GNU Coding Standards introduced the @runstatedir@ variable
for this purpose. Lets use that instead.

The GNU default for @runstatedir@ is ${localstatedir}/run so util-linux
still override the default to be /run to preserve the status quo from
before. The only difference is that you'll now pass --runstatedir to
override the location on the command line instead of --localstatedir.

(FWIW, Debhelper in compat 11 will automatically start passing
--runstatedir=/run to all autotools configured builds. It already
passes --localstatedir=/var (to avoid it ending up with the GNU default
/usr/local/var) which breaks the util-linux build system code that
tries to default it to /run. This change will thus allow util-linux
and debhelper to work better together and avoid the need for a
package-specific override.)

Relevant historic commits:
 * commit 07a16b9d1e
   "build-sys: change --localstatedir to /run"
 * commit 80c51185d5
   "uuidd: use run configured state directory"
 * commit 01c5b78794
   "agetty: use configured run state directory"

[kzak@redhat.com: - add $runstatedir fallback for autoconf < 2.70
                  - check for unmodified $localstatedir]

CC: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Andreas Henriksson <andreas@fatal.se>
Signed-off-by: Karel Zak <kzak@redhat.com>
pull/492/head
Andreas Henriksson 5 years ago committed by Karel Zak
parent
commit
8df545592d
  1. 4
      Makefile.am
  2. 18
      configure.ac
  3. 2
      include/pathnames.h
  4. 2
      libuuid/src/uuidd.h
  5. 4
      misc-utils/test_uuidd.c
  6. 4
      misc-utils/uuidd.8.in
  7. 2
      misc-utils/uuidd.rc.in
  8. 2
      misc-utils/uuidd.socket.in

4
Makefile.am

@ -2,7 +2,7 @@ AM_CPPFLAGS = \
-include config.h \
-I$(top_srcdir)/include \
-DLOCALEDIR=\"$(localedir)\" \
-D_PATH_LOCALSTATEDIR=\"${localstatedir}\"
-D_PATH_RUNSTATEDIR=\"${runstatedir}\"
AM_CFLAGS = -fsigned-char $(WARN_CFLAGS)
AM_LDFLAGS =
@ -119,7 +119,7 @@ edit_cmd = sed \
-e 's|@sbindir[@]|$(sbindir)|g' \
-e 's|@bindir[@]|$(bindir)|g' \
-e 's|@includedir[@]|$(includedir)|g' \
-e 's|@localstatedir[@]|$(localstatedir)|g' \
-e 's|@runstatedir[@]|$(runstatedir)|g' \
-e 's|@usrlib_execdir[@]|$(usrlib_execdir)|g' \
-e 's|@usrbin_execdir[@]|$(usrbin_execdir)|g' \
-e 's|@usrsbin_execdir[@]|$(usrsbin_execdir)|g' \

18
configure.ac

@ -72,13 +72,17 @@ AS_CASE([$exec_prefix:$prefix],
]
)
AS_CASE([$prefix:$localstatedir],
[NONE:'${prefix}/var' | /usr:'${prefix}/var'],
[localstatedir=/run
AC_MSG_NOTICE([ --localstatedir defaults to /run])
]
# default for old versions without $runstatedir
AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run'])
# our default if $localstatedir unchanged
AS_CASE([$localstatedir:$runstatedir],
[NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ],
[runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])]
)
AC_SUBST([localstatedir])
AC_SUBST([runstatedir])
# The original default values of {bin,sbin,lib}dir
@ -2282,7 +2286,7 @@ AC_MSG_RESULT([
prefix: ${prefix}
exec prefix: ${exec_prefix}
localstatedir: ${localstatedir}
runstatedir: ${runstatedir}
bindir: ${bindir}
sbindir: ${sbindir}
libdir: ${libdir}

2
include/pathnames.h

@ -71,7 +71,7 @@
#define _PATH_ISSUE "/etc/issue"
#define _PATH_OS_RELEASE_ETC "/etc/os-release"
#define _PATH_OS_RELEASE_USR "/usr/lib/os-release"
#define _PATH_NUMLOCK_ON _PATH_LOCALSTATEDIR "/numlock-on"
#define _PATH_NUMLOCK_ON _PATH_RUNSTATEDIR "/numlock-on"
#define _PATH_LOGINDEFS "/etc/login.defs"
/* misc paths */

2
libuuid/src/uuidd.h

@ -35,7 +35,7 @@
#ifndef _UUID_UUIDD_H
#define _UUID_UUIDD_H
#define UUIDD_DIR _PATH_LOCALSTATEDIR "/uuidd"
#define UUIDD_DIR _PATH_RUNSTATEDIR "/uuidd"
#define UUIDD_SOCKET_PATH UUIDD_DIR "/request"
#define UUIDD_PIDFILE_PATH UUIDD_DIR "/uuidd.pid"
#define UUIDD_PATH "/usr/sbin/uuidd"

4
misc-utils/test_uuidd.c

@ -18,10 +18,10 @@
*
* uuidd --debug --no-fork --no-pid --socket /run/uuidd/request
*
* if the $localstatedir (as defined by build-system) is /run. If you want
* if the $runstatedir (as defined by build-system) is /run. If you want
* to overwrite the built-in default then use:
*
* make uuidd uuidgen localstatedir=/var
* make uuidd uuidgen runstatedir=/var/run
*/
#include <pthread.h>
#include <stdio.h>

4
misc-utils/uuidd.8.in

@ -37,7 +37,7 @@ Do not create a pid file.
.TP
.BR \-p , " \-\-pid " \fIpath\fR
Specify the pathname where the pid file should be written. By default,
the pid file is written to @localstatedir@/uuidd/uuidd.pid.
the pid file is written to @runstatedir@/uuidd/uuidd.pid.
.TP
.BR \-q , " \-\-quiet "
Suppress some failure messages.
@ -54,7 +54,7 @@ a configure option.
.TP
.BR \-s , " \-\-socket " \fIpath\fR
Make uuidd use this pathname for the unix-domain socket. By default, the
pathname used is @localstatedir@/uuidd/request. This option is primarily
pathname used is @runstatedir@/uuidd/request. This option is primarily
for debugging purposes, since the pathname is hard-coded in the libuuid
library.
.TP

2
misc-utils/uuidd.rc.in

@ -17,7 +17,7 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/uuidd
UUIDD_USER=uuidd
UUIDD_GROUP=uuidd
UUIDD_DIR=@localstatedir@/uuidd
UUIDD_DIR=@runstatedir@/uuidd
PIDFILE=$UUIDD_DIR/uuidd.pid
test -x $DAEMON || exit 0

2
misc-utils/uuidd.socket.in

@ -2,7 +2,7 @@
Description=UUID daemon activation socket
[Socket]
ListenStream=@localstatedir@/uuidd/request
ListenStream=@runstatedir@/uuidd/request
[Install]
WantedBy=sockets.target

Loading…
Cancel
Save