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

Reply via email to