summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Wiebe <artur@4wiebe.de>2020-12-04 10:30:24 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2020-12-11 08:22:51 +0100
commit91fcb28b61c6ddcc9b0e1542822eb81c80b58d82 (patch)
tree3ca8cf4287c3767e6c95eca93e5e27f020f284c0
parente3756c6d8d70404ee259f15cdb45aa00f11a013e (diff)
downloadptxdist-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-id0
-rw-r--r--rules/machine-id.in25
-rw-r--r--rules/machine-id.make4
-rw-r--r--rules/machine-id.postinst6
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