On Wed, Nov 25, 2020 at 05:56:49PM +0100, Artur Wiebe wrote: > If not set only an empty /etc/machine-id will be installed. > > Signed-off-by: Artur Wiebe <ar...@4wiebe.de> > --- > rules/machine-id.in | 22 ++++++++++++++++++---- > rules/machine-id.make | 4 ++++ > rules/machine-id.postinst | 5 +++-- > 3 files changed, 25 insertions(+), 6 deletions(-) > > diff --git a/rules/machine-id.in b/rules/machine-id.in > index f18fec554..2a3901f41 100644 > --- a/rules/machine-id.in > +++ b/rules/machine-id.in > @@ -1,11 +1,25 @@ > ## 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 > + 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
Hmmm, maybe should have no prompt and 'depends on RC_ONCE' (instead of selecting it above). I don't think there is a use-case for not persisting the machine-id if rc-once is available. This is different from the ssh server key case: There are other ways to create the keys. > + help > + If not set only an empty /etc/machine-id will be installed. > + 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..e1cbdcc42 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.olbr...@pengutronix.de>") > @$(call install_fixup,machine-id,DESCRIPTION,missing) > > + @$(call install_copy, machine-id, 0, 0, 0644, /dev/null, > /etc/machine-id) Maybe install_alternative and an empty on in projectroot/. Sometimes it's better to share the same machine-id across devices than having a new one after rebooting. Also, this should only happen for !PTXCONF_MACHINE_ID_RC_ONCE. It's not a good idea to modify files that are installed by a package. > + > +ifdef MACHINE_ID_RC_ONCE ifdef PTXCONF_MACHINE_ID_RC_ONCE > @$(call install_alternative, machine-id, 0, 0, 0755, > /etc/rc.once.d/machine-id) > +endif > > @$(call install_finish,machine-id) > > diff --git a/rules/machine-id.postinst b/rules/machine-id.postinst > index 2060129d1..f1648226b 100644 > --- a/rules/machine-id.postinst > +++ b/rules/machine-id.postinst > @@ -1,3 +1,4 @@ > #!/bin/sh > -touch "$DESTDIR/etc/machine-id" So this is still needed inside the 'if'. Michael > -$DESTDIR/usr/sbin/enable-rc-once machine-id > +if [ -f $DESTDIR/etc/rc.once.d/machine-id ]; then > + $DESTDIR/usr/sbin/enable-rc-once machine-id > +fi > -- > 2.29.2 > > > _______________________________________________ > ptxdist mailing list > ptxdist@pengutronix.de > To unsubscribe, send a mail with subject "unsubscribe" to > ptxdist-requ...@pengutronix.de > _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-requ...@pengutronix.de