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
07a16b9d1e5a48550a0d19abb9a900853433ffa2
"build-sys: change --localstatedir to /run"
* commit
80c51185d50f00a2701f9379f10fc48a0f885dfc
"uuidd: use run configured state directory"
* commit
01c5b787947aeaffc7e56000827e3edefa357c59
"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>
-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 =
-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' \
]
)
-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
prefix: ${prefix}
exec prefix: ${exec_prefix}
- localstatedir: ${localstatedir}
+ runstatedir: ${runstatedir}
bindir: ${bindir}
sbindir: ${sbindir}
libdir: ${libdir}
#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 */
#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"
*
* 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>
.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.
.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
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
Description=UUID daemon activation socket
[Socket]
-ListenStream=@localstatedir@/uuidd/request
+ListenStream=@runstatedir@/uuidd/request
[Install]
WantedBy=sockets.target