diff options
author | Artur Wiebe <artur@4wiebe.de> | 2020-12-04 10:30:24 +0100 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2020-12-11 08:22:51 +0100 |
commit | 91fcb28b61c6ddcc9b0e1542822eb81c80b58d82 (patch) | |
tree | 3ca8cf4287c3767e6c95eca93e5e27f020f284c0 | |
parent | e3756c6d8d70404ee259f15cdb45aa00f11a013e (diff) | |
download | ptxdist-91fcb28b61c6ddcc9b0e1542822eb81c80b58d82.tar.gz ptxdist-91fcb28b61c6ddcc9b0e1542822eb81c80b58d82.tar.xz |
machine-id: make using rc-once optional
If not set /etc/machine-id will be installed from projectroot (default: empty file).
Signed-off-by: Artur Wiebe <artur@4wiebe.de>
Message-Id: <20201204093024.1785079-1-artur@4wiebe.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r-- | projectroot/etc/machine-id | 0 | ||||
-rw-r--r-- | rules/machine-id.in | 25 | ||||
-rw-r--r-- | rules/machine-id.make | 4 | ||||
-rw-r--r-- | rules/machine-id.postinst | 6 |
4 files changed, 28 insertions, 7 deletions
diff --git a/projectroot/etc/machine-id b/projectroot/etc/machine-id new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/projectroot/etc/machine-id diff --git a/rules/machine-id.in b/rules/machine-id.in index f18fec554..9ad6db935 100644 --- a/rules/machine-id.in +++ b/rules/machine-id.in @@ -1,11 +1,26 @@ ## SECTION=initmethod -config MACHINE_ID +menuconfig MACHINE_ID tristate - prompt "create /etc/machine-id" - select RC_ONCE if RUNTIME - select UTIL_LINUX_NG if !INITMETHOD_SYSTEMD - select UTIL_LINUX_NG_UUIDGEN if !INITMETHOD_SYSTEMD + prompt "create /etc/machine-id " + select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME + select UTIL_LINUX_NG if MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD + select UTIL_LINUX_NG_UUIDGEN if MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD help Enable this to make sure there is always a unique /etc/machine-id available in the system. + +if MACHINE_ID + +config MACHINE_ID_RC_ONCE + bool "generate (bbinit) or save (systemd) machine-id using rc-once at first boot" + default y + help + If not set /etc/machine-id will be installed from projectroot + (default: empty file). + Systemd: + If /etc/machine-id exists and is empty, systemd will bind-mount + a file containing the new machine-id over it and later try + to commit it to disk (if /etc/ is writable). + +endif diff --git a/rules/machine-id.make b/rules/machine-id.make index 3883d64cb..50e9b99ee 100644 --- a/rules/machine-id.make +++ b/rules/machine-id.make @@ -27,7 +27,11 @@ $(STATEDIR)/machine-id.targetinstall: @$(call install_fixup,machine-id,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>") @$(call install_fixup,machine-id,DESCRIPTION,missing) +ifdef PTXCONF_MACHINE_ID_RC_ONCE @$(call install_alternative, machine-id, 0, 0, 0755, /etc/rc.once.d/machine-id) +else + @$(call install_alternative, machine-id, 0, 0, 0444, /etc/machine-id) +endif @$(call install_finish,machine-id) diff --git a/rules/machine-id.postinst b/rules/machine-id.postinst index 2060129d1..208f7b4b8 100644 --- a/rules/machine-id.postinst +++ b/rules/machine-id.postinst @@ -1,3 +1,5 @@ #!/bin/sh -touch "$DESTDIR/etc/machine-id" -$DESTDIR/usr/sbin/enable-rc-once machine-id +if [ -f $DESTDIR/etc/rc.once.d/machine-id ]; then + touch "$DESTDIR/etc/machine-id" + $DESTDIR/usr/sbin/enable-rc-once machine-id +fi |