From nobody Sun Mar 12 09:04:29 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PZDPV1sSjz3xcVH; Sun, 12 Mar 2023 09:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PZDPV0nhqz4FWc; Sun, 12 Mar 2023 09:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1678611870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jEdqix6VtAmYo1ee4r6b5gCkqCVOSv62PuDD3tn0HEM=; b=usIIZ1EO0mAajoqvtRoqU3rHkWvMLn9p1nNAHcrtV5LUbjZQI3HqEvkPlO99A6Ym9GwZTk IwTR5a/028eVdeV4GhXSGQ4+sYeGYoIH2DiBTaTiGFxeU58MIsr84CJpDoFL2ZbyZiRQMf cS2cMCgm9l3ZytuSNtE//Vo2FPYH/84l4nwnUkFAI/R55Raf5126Vf1LKEpW6vqPGZfxSf 8Pp6pdau7KmNVTWyaFUqyehH5dUGMmaE0x+g1gBuE7ZOZb7A5c+huToHgtLEcTCsgHWtCW WKtUj+77qCh+3X5DypcOmQVv8G6+xiYXRRytT8Fm4NVp+aQ89dft8qkxuXzRSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1678611870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jEdqix6VtAmYo1ee4r6b5gCkqCVOSv62PuDD3tn0HEM=; b=YpI+NJglbXrlQitnWhxnTL12QqSRq6bd2NeTAKv/9vs5iN2Nc/TesnPP/R8YgzWP1Y2m79 Dhrr8YHJjL5Ttf052PT088eZvQo2fmdQstWIKotCBdxrVTvskMvBpx9dSxfw2K8OBNpxV9 GpXMPhPzU9Ck0oAC+n4e4PQIxJPhHUPsK72lYzVsp5aJwH467jkZnXTox7o6q6SzojTeaE lOBAqTLaASkG3lPXaUg0NHzED4vQpmdaHkZo75LbXMqlxkmGdgo5PWY9mrQ73C7w8uJv1F LnunI1XlCAZmrtNE3SR4htMYL6lUvce26A9ZT+mFaCdRTrlhF2By/QKxPoBFgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1678611870; a=rsa-sha256; cv=none; b=q2OuJTETKz43QuIu8DYjhRkZ4Gln7Cl1kgtSXW+ryIb/AcYyfO8V9K5mUeIm48UDg9tRem qhPcLvmq7+vMvX0ZsqrXJebMTaoyA1zCRUOzdyjRCYQCQChhrs9hTXYLhpTEKE2IY5oaUt 8ARL/dFGAf4VsaYAoturtNJI2SNOWoAtJbiTO2RqMqT6sZJV9M5Sh3x5OvIuSPi6c5CBvd ybViKoT4S/MV+jr2Vb8rlI4erphgWRWUcIYRQMhhLpVtz11Ni7e9BUEvkI+pski1nRVXbR MrbKDhGVAbMGijWDA7stoQlMog74G6V89HNvUsTNGxYSKHJjL7XTP/eJxAtwzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4PZDPT6jlZz14yc; Sun, 12 Mar 2023 09:04:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 32C94TGN099613; Sun, 12 Mar 2023 09:04:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 32C94T3T099612; Sun, 12 Mar 2023 09:04:29 GMT (envelope-from git) Date: Sun, 12 Mar 2023 09:04:29 GMT Message-Id: <202303120904.32C94T3T099612@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Tijl Coosemans Subject: git: d6852eed98ed - stable/13 - rc.d: Generate machine-id from hostid_save List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tijl X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d6852eed98ed32ad51120a22aa1ebdf0601917b3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by tijl: URL: https://cgit.FreeBSD.org/src/commit/?id=d6852eed98ed32ad51120a22aa1ebdf0601917b3 commit d6852eed98ed32ad51120a22aa1ebdf0601917b3 Author: Tijl Coosemans AuthorDate: 2023-02-15 20:09:51 +0000 Commit: Tijl Coosemans CommitDate: 2023-03-12 08:59:58 +0000 rc.d: Generate machine-id from hostid_save rc.d/hostid_save saves a UUID generated by rc.d/hostid in /etc/hostid. Store the same UUID, without hyphens, in /etc/machine-id. The hypĥens are removed with a shell function because hostid_save runs before file systems are mounted so other tools may not be available yet. This eliminates some duplication between hostid and machine-id and for virtual machines machine-id now contains the UUID configured in the hypervisor like it does on Linux. Reviewed by: delphij Discussed with: bapt MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D38811 (cherry picked from commit ecad3f5c4d922f93ceba455f8bff1c54e1ed4174) --- ObsoleteFiles.inc | 3 +++ etc/Makefile | 2 -- libexec/rc/rc.conf | 4 +--- libexec/rc/rc.d/Makefile | 1 - libexec/rc/rc.d/hostid_save | 28 ++++++++++++++++++++-------- libexec/rc/rc.d/machine_id | 34 ---------------------------------- sys/sys/param.h | 2 +- 7 files changed, 25 insertions(+), 49 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 37f07a708986..e6b2140af29d 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -52,6 +52,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20230308: machine-id merged into hostid_save +OLD_FILES+=etc/rc.d/machine-id + # 20230203: loader help files renamed OLD_FILES+=boot/loader.help diff --git a/etc/Makefile b/etc/Makefile index 49a7a12a41b5..104e40b6e345 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -58,8 +58,6 @@ 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 23f9406da017..af7b6ff6302e 100644 --- a/libexec/rc/rc.conf +++ b/libexec/rc/rc.conf @@ -135,6 +135,7 @@ hostname="" # Set this! hostid_enable="YES" # Set host UUID. hostid_file="/etc/hostid" # File with hostuuid. hostid_uuidgen_flags="-r" # Flags to uuidgen. +machine_id_file="/etc/machine-id" # File with machine-id. nisdomainname="NO" # Set to NIS domain if using NIS (or NO). dhclient_program="/sbin/dhclient" # Path to dhcp client program. dhclient_flags="" # Extra flags to pass to dhcp client. @@ -703,9 +704,6 @@ 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 188eae2e2f5b..40a1a212ca3a 100644 --- a/libexec/rc/rc.d/Makefile +++ b/libexec/rc/rc.d/Makefile @@ -51,7 +51,6 @@ CONFS= DAEMON \ local \ localpkg \ lockd \ - machine_id \ mixer \ motd \ mountcritlocal \ diff --git a/libexec/rc/rc.d/hostid_save b/libexec/rc/rc.d/hostid_save index f535ea2596f2..f737ed7f74cf 100755 --- a/libexec/rc/rc.d/hostid_save +++ b/libexec/rc/rc.d/hostid_save @@ -15,20 +15,32 @@ start_cmd="hostid_save" stop_cmd=":" rcvar="hostid_enable" +hostid_machine_id() +{ + local IFS + + IFS=- + set -- ${current_hostid} + IFS= + current_machine_id=$* +} + hostid_save() { current_hostid=`$SYSCTL_N kern.hostuuid` - if [ -r ${hostid_file} ]; then - read saved_hostid < ${hostid_file} - if [ ${saved_hostid} = ${current_hostid} ]; then - exit 0 - fi + read saved_hostid 2>/dev/null < ${hostid_file} + if [ "${saved_hostid}" != "${current_hostid}" ]; then + echo "${current_hostid}" > ${hostid_file} || + warn "could not store hostuuid in ${hostid_file}." fi - echo ${current_hostid} > ${hostid_file} - if [ $? -ne 0 ]; then - warn "could not store hostuuid in ${hostid_file}." + hostid_machine_id + + read saved_machine_id 2>/dev/null < ${machine_id_file} + if [ "${saved_machine_id}" != "${current_machine_id}" ]; then + echo "${current_machine_id}" > ${machine_id_file} || + warn "could not store hostuuid in ${machine_id_file}." fi } diff --git a/libexec/rc/rc.d/machine_id b/libexec/rc/rc.d/machine_id deleted file mode 100644 index 8bf3e41d0603..000000000000 --- a/libexec/rc/rc.d/machine_id +++ /dev/null @@ -1,34 +0,0 @@ -#!/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 -c -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 12a407dd0464..564fbfd9c70d 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 1302503 /* Master, propagated to newvers */ +#define __FreeBSD_version 1302504 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,