[ptxdist] [PATCH] 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 --- projectroot/etc/machine-id | 0 rules/machine-id.in| 23 +++ rules/machine-id.make | 4 rules/machine-id.postinst | 6 -- 4 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 projectroot/etc/machine-id diff --git a/projectroot/etc/machine-id b/projectroot/etc/machine-id new file mode 100644 index 0..e69de29bb diff --git a/rules/machine-id.in b/rules/machine-id.in index f18fec554..36fa0f6df 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_NGif !INITMETHOD_SYSTEMD - select UTIL_LINUX_NG_UUIDGENif !INITMETHOD_SYSTEMD + select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME + select UTIL_LINUX_NGif MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD + select UTIL_LINUX_NG_UUIDGENif 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 ") @$(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 -- 2.29.2 ___ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-requ...@pengutronix.de
Re: [ptxdist] [PATCH] machine-id: make using rc-once optional
On Mon, Nov 30, 2020 at 11:42:54AM +0100, Artur Wiebe wrote: > If not set only an empty /etc/machine-id will be installed. I'm ok with keeping the prompt for MACHINE_ID_RC_ONCE, but you have ignored all my other review as well. That still needs to be fixed. Michael > > Signed-off-by: Artur Wiebe > --- > projectroot/etc/machine-id | 0 > rules/machine-id.in| 22 ++ > rules/machine-id.make | 4 > rules/machine-id.postinst | 5 +++-- > 4 files changed, 25 insertions(+), 6 deletions(-) > create mode 100644 projectroot/etc/machine-id > > diff --git a/projectroot/etc/machine-id b/projectroot/etc/machine-id > new file mode 100644 > index 0..e69de29bb > 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_NGif !INITMETHOD_SYSTEMD > - select UTIL_LINUX_NG_UUIDGENif !INITMETHOD_SYSTEMD > + select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME > + select UTIL_LINUX_NGif MACHINE_ID_RC_ONCE && > !INITMETHOD_SYSTEMD > + select UTIL_LINUX_NG_UUIDGENif 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 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..5d66829da 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 > ") > @$(call install_fixup,machine-id,DESCRIPTION,missing) > > + @$(call install_alternative, machine-id, 0, 0, 0444, /etc/machine-id) > + > +ifdef 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" > -$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
[ptxdist] [PATCH] machine-id: make using rc-once optional
If not set only an empty /etc/machine-id will be installed. Signed-off-by: Artur Wiebe --- projectroot/etc/machine-id | 0 rules/machine-id.in| 22 ++ rules/machine-id.make | 4 rules/machine-id.postinst | 5 +++-- 4 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 projectroot/etc/machine-id diff --git a/projectroot/etc/machine-id b/projectroot/etc/machine-id new file mode 100644 index 0..e69de29bb 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_NGif !INITMETHOD_SYSTEMD - select UTIL_LINUX_NG_UUIDGENif !INITMETHOD_SYSTEMD + select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME + select UTIL_LINUX_NGif MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD + select UTIL_LINUX_NG_UUIDGENif 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 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..5d66829da 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 ") @$(call install_fixup,machine-id,DESCRIPTION,missing) + @$(call install_alternative, machine-id, 0, 0, 0444, /etc/machine-id) + +ifdef 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" -$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
Re: [ptxdist] [PATCH] machine-id: make using rc-once optional
On Fri, Nov 27, 2020 at 09:38:41AM +0100, Michael Olbrich wrote: > 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 > > --- > > 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_NGif !INITMETHOD_SYSTEMD > > - select UTIL_LINUX_NG_UUIDGENif !INITMETHOD_SYSTEMD > > + select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME > > + select UTIL_LINUX_NGif MACHINE_ID_RC_ONCE && > > !INITMETHOD_SYSTEMD > > + select UTIL_LINUX_NG_UUIDGENif 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. Well, one of my systems has a service for that. Machine-id is generated using hardware info. In that case I do not mind as RC_ONCE is not selected, but there is a use-case in general. However it is still possible to override rules/machine-id.in in BSP, so... > This is different from the ssh server key case: There are other ways to > create the keys. There are other ways to create machine-id too... ___ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-requ...@pengutronix.de
Re: [ptxdist] [PATCH] machine-id: make using rc-once optional
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 > --- > 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_NGif !INITMETHOD_SYSTEMD > - select UTIL_LINUX_NG_UUIDGENif !INITMETHOD_SYSTEMD > + select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME > + select UTIL_LINUX_NGif MACHINE_ID_RC_ONCE && > !INITMETHOD_SYSTEMD > + select UTIL_LINUX_NG_UUIDGENif 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 > ") > @$(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
[ptxdist] [PATCH] machine-id: make using rc-once optional
If not set only an empty /etc/machine-id will be installed. Signed-off-by: Artur Wiebe --- 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_NGif !INITMETHOD_SYSTEMD - select UTIL_LINUX_NG_UUIDGENif !INITMETHOD_SYSTEMD + select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME + select UTIL_LINUX_NGif MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD + select UTIL_LINUX_NG_UUIDGENif 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 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 ") @$(call install_fixup,machine-id,DESCRIPTION,missing) + @$(call install_copy, machine-id, 0, 0, 0644, /dev/null, /etc/machine-id) + +ifdef 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" -$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