aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/Makefile2
-rw-r--r--libexec/rc/rc.conf3
-rw-r--r--libexec/rc/rc.d/Makefile1
-rw-r--r--libexec/rc/rc.d/machine_id34
-rw-r--r--sys/sys/param.h2
5 files changed, 41 insertions, 1 deletions
diff --git a/etc/Makefile b/etc/Makefile
index 104e40b6e345..49a7a12a41b5 100644
--- a/etc/Makefile
+++ b/etc/Makefile
@@ -58,6 +58,8 @@ distribution:
${_+_}cd ${SRCTOP}/usr.sbin/rmt; ${MAKE} etc-rmt
${INSTALL_SYMLINK} -T "package=runtime" ../var/run/os-release \
${DESTDIR}/etc/os-release
+ ${INSTALL_SYMLINK} -T "package=runtime" ../var/db/machine-id \
+ ${DESTDIR}/etc/machine-id
.if ${MK_UNBOUND} != "no"
if [ ! -e ${DESTDIR}/etc/unbound ]; then \
${INSTALL_SYMLINK} -T "package=unbound" \
diff --git a/libexec/rc/rc.conf b/libexec/rc/rc.conf
index 82796ba0ec48..e4f1ebe39de3 100644
--- a/libexec/rc/rc.conf
+++ b/libexec/rc/rc.conf
@@ -700,6 +700,9 @@ harvest_mask="511" # Entropy device harvests all but the very invasive sources.
osrelease_enable="YES" # Update /var/run/os-release on boot (or NO).
osrelease_file="/var/run/os-release" # File to update for os-release.
osrelease_perms="444" # Default permission for os-release file.
+machine_id_enable="YES" # Create /var/db/machine-id on boot if missing (or NO).
+machine_id_file="/var/db/machine-id" # File to update for machine-id.
+machine_id_perms="444" # Default permissions for machine-id file.
dmesg_enable="YES" # Save dmesg(8) to /var/run/dmesg.boot
watchdogd_enable="NO" # Start the software watchdog daemon
watchdogd_flags="" # Flags to watchdogd (if enabled)
diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile
index 0aa6b01448a5..0e7a04a5df1b 100644
--- a/libexec/rc/rc.d/Makefile
+++ b/libexec/rc/rc.d/Makefile
@@ -53,6 +53,7 @@ CONFS= DAEMON \
local \
localpkg \
lockd \
+ machine_id \
mixer \
motd \
mountcritlocal \
diff --git a/libexec/rc/rc.d/machine_id b/libexec/rc/rc.d/machine_id
new file mode 100644
index 000000000000..7cfd7b2d92f8
--- /dev/null
+++ b/libexec/rc/rc.d/machine_id
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: machine_id
+# REQUIRE: mountcritremote FILESYSTEMS
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+: ${machine_id_file:=/var/db/machine-id}
+: ${machine_id_perms:=444}
+name="machine_id"
+desc="Update ${machine_id_file}"
+rcvar="machine_id_enable"
+start_cmd="machine_id_start"
+stop_cmd=":"
+
+
+machine_id_start()
+{
+ if [ ! -f ${machine_id_file} ] ; then
+ startmsg -n "Creating ${machine_id_file} "
+ t=$(mktemp -t machine-id)
+ /bin/uuidgen -r -o $t
+ install -C -o root -g wheel -m ${machine_id_perms} "$t" "${machine_id_file}"
+ rm -f "$t"
+ startmsg 'done.'
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/sys/sys/param.h b/sys/sys/param.h
index 57cf5937d952..4d1f940af760 100644
--- a/sys/sys/param.h
+++ b/sys/sys/param.h
@@ -60,7 +60,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 1301510 /* Master, propagated to newvers */
+#define __FreeBSD_version 1301511 /* Master, propagated to newvers */
/*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,