From nobody Fri Dec 23 16:36:47 2022 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 4Ndt9r0YN7z1H3qW; Fri, 23 Dec 2022 16:36:48 +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 4Ndt9r03jCz47Vg; Fri, 23 Dec 2022 16:36:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1671813408; 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=GvWFp2xVYxBWUnRZyuXejHrxwphRTLhhNq5Y/+iWwLA=; b=xNGw+Syl3gjPN6F6YCG8eImYPNfmyOkxyrCpoA6jTXxXyls9fOKqurZVmTG2/JxCSMb76e W0s1vo1QBCkP63c7bs3kEoBlOcLEiexT4wHDVtk1fYBxFll8UxRkyTSiYkxfwSaXtcUoID mdSf3TK6r1gP37tzxstCmeS0C0c0WEx+AQzaPJyYWc1Iwf1OYekWI60Hftz3qFaLEDjfnz 5Y2KVoRww59DKydjKC27lwwB4DtTyuTQLBvG48wOhY+gteaGDM7hp0ODA5A9ruIYGzQtsU wtEzl+8Dya/K4wgmrBG+rq9g3WKV5j0GyvQJxz3ZajbyKv2Ezt2h1sqEt/RZtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1671813408; 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=GvWFp2xVYxBWUnRZyuXejHrxwphRTLhhNq5Y/+iWwLA=; b=Nbdz787UQt1l1BfdmqYY0Sj+z3TSfSZxAXtnmA8Z/pyOcAiQDgikVgtofBDADN7QxgV7yA oByrCyYqTkFHhcsCVlDQ5FxtCzxGw6/b+b4UzvINQo3Sc4+t03+n2bJ1N+MMTA1LqofJ0I cKhJQmePBtNzj5Iz8cUJc5wemuHEqZ1DU7j9Lx8zQAXBHxpOGCrK0sUbQMtWEP9uoJkhvl eApp2IUcRCxPKvjuHHDqK7747E/C3RiIyBFKlCHeK0FjhZZjAViEGVCBfzUmPkt68nXNa3 cUBPlCCF6L++1EDG2kd30W7nKRjmzbBQF1AHskA6JbFun73Wox9dlC6kfbw/bw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1671813408; a=rsa-sha256; cv=none; b=gSqXQSbprAleC1pKTApdd+hOjAIOMAtBmzD8lqQ2i6SjMFmF2s4cAHVAxXej7krtvb7MVP G4LeFp2O/wq0vr/zK4aWq92k+nxGwLzGDL/rWt6HGX/p4la3lCKm6F4caDeY0QIxt5g7Ll aX1omYCxC6BIxJgO3dNK7PYmntI+mCY7kWAusN2UFf/ekYRO388WYBvr2Q/V96ZHgjWou9 fx28t34v/sgdu1fuK7RfJ3EgZABrCyBIYiUeNoK04pzxaQmoxYncfXOhQS5LToAAC7U9Aa JOz/Ogf/YlAr+t87q8lDDnBacfFHGk3Z4p/o5em4FlcQHn1FaeqiNxxRaB/MQw== 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 4Ndt9q6DjqzgvL; Fri, 23 Dec 2022 16:36:47 +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 2BNGalTs012057; Fri, 23 Dec 2022 16:36:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2BNGaluc012056; Fri, 23 Dec 2022 16:36:47 GMT (envelope-from git) Date: Fri, 23 Dec 2022 16:36:47 GMT Message-Id: <202212231636.2BNGaluc012056@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Tobias C. Berner" Subject: git: 62a149bf6219 - main - Add new rc: machine_id to generate /etc/machine-id 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: tcberner X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 62a149bf621947fb7475c64b1ff04fe19fe16b29 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by tcberner (ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=62a149bf621947fb7475c64b1ff04fe19fe16b29 commit 62a149bf621947fb7475c64b1ff04fe19fe16b29 Author: Tobias C. Berner AuthorDate: 2022-12-17 09:18:03 +0000 Commit: Tobias C. Berner CommitDate: 2022-12-23 16:33:19 +0000 Add new rc: machine_id to generate /etc/machine-id This new default-enabled rc will generate a /etc/machine-id file if it does not exist, and pre-fill it with a newly generated UUID of version 4 [2]. The file is generated in /var/db/machine-id and symlinked to /etc/machine-id to allow for read-only root partitions. This file is amongst other things used by libraries like GLib. Bump FreeBSD version 1400076 to be able to easily add support for older version of FreeBSD via a package. [1] Linux machine-id(5): https://www.man7.org/linux/man-pages/man5/machine-id.5.html [2] f176fe8e7f638e585afcd2f4dd52a522c4648f63 Approved by: bapt MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D37722 --- etc/Makefile | 2 ++ libexec/rc/rc.conf | 3 +++ libexec/rc/rc.d/Makefile | 1 + libexec/rc/rc.d/machine_id | 34 ++++++++++++++++++++++++++++++++++ sys/sys/param.h | 2 +- 5 files changed, 41 insertions(+), 1 deletion(-) diff --git a/etc/Makefile b/etc/Makefile index 3036b7acdd19..10d2f7ea2c5c 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -59,6 +59,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 d10855e1e5fa..a1f6a3f69e8d 100644 --- a/libexec/rc/rc.conf +++ b/libexec/rc/rc.conf @@ -694,6 +694,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 0e43b1cd94dc..e990dea60721 100644 --- a/libexec/rc/rc.d/Makefile +++ b/libexec/rc/rc.d/Makefile @@ -52,6 +52,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 bb56fe1140cf..9b123a38a7a8 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -76,7 +76,7 @@ * cannot include sys/param.h and should only be updated here. */ #undef __FreeBSD_version -#define __FreeBSD_version 1400075 +#define __FreeBSD_version 1400076 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,