mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: "rhi@pengutronix.de" <rhi@pengutronix.de>
Cc: Denis Osterland-Heim <denis.osterland@diehl.com>,
	"ptxdist@pengutronix.de" <ptxdist@pengutronix.de>,
	"robin@protonic.nl" <robin@protonic.nl>
Subject: Re: [ptxdist] PTXCONF_RAUC_COMPATIBLE location
Date: Fri, 3 Sep 2021 16:36:18 +0200	[thread overview]
Message-ID: <20210903143618.GL4027748@pengutronix.de> (raw)
In-Reply-To: <20210824130304.k4fxubqck7cil3ra@pengutronix.de>

On Tue, Aug 24, 2021 at 03:03:04PM +0200, rhi@pengutronix.de wrote:
> On Tue, Aug 24, 2021 at 06:44:55AM +0000, Denis Osterland-Heim wrote:
> > Hi Roland,
> > 
> > Am Montag, den 23.08.2021, 11:13 +0200 schrieb Roland Hieber:
> > > On Mon, Aug 23, 2021 at 07:41:24AM +0000, Denis Osterland-Heim wrote:
> > > > Hi Robin,
> > > >
> > > > I see. It is not perfect, that image-rauc uses the variables from rauc silently.
> > >
> > > … and IMAGE_RAUC cannot depend on RAUC because one is in the
> > > platformconfig menu and one is in the ptxconfig menu. But it will work
> > > this way nevertheless because at the time that IMAGE_RAUC_ENV is
> > > assigned in rules/image-rauc.make, the kconfig variables from both menus
> > > are already available in make.
> > >
> > > > I would suggest:
> > > >
> > > > diff --git a/platforms/image-rauc.in b/platforms/image-rauc.in
> > > > index 1f9427b40..bfbe4a18a 100644
> > > > --- a/platforms/image-rauc.in
> > > > +++ b/platforms/image-rauc.in
> > > > @@ -26,4 +26,26 @@ config IMAGE_RAUC_DESCRIPTION
> > > >  help
> > > >    Optional description that will be placed in the Bundles metadata.
> > > >
> > > > +config IMAGE_RAUC_COMPATIBLE
> > > > +string
> > > > +prompt "RAUC Bundle Compatible"
> > > > +default "${PTXCONF_RAUC_COMPATIBLE}"
> > > > +help
> > > > +  An explicit identification string that RAUC uses to assure an update
> > > > +  bundle matches with the correct root filesystem on the target.
> > > > +  .
> > > > +  Only if the compatible in the targets RAUC system.conf file and those
> > > > +  in the Bundle's manifest match exactly, an update will be performed.
> > > > +  .
> > > > +  This must match the client configuration.
> > > > +
> > > > +config IMAGE_RAUC_BUNDLE_VERSION
> > > > +string
> > > > +prompt "RAUC Bundle Version"
> > > > +default "${PTXDIST_RAUC_BUNDLE_VERSION}"
> > > > +help
> > > > +  Overwrite the bundle version if needed.
> > > > +  .
> > > > +  This must match the client configuration.
> > > > +
> > >
> > > This has the disadvantage that the menu item is duplicated, and we
> > > cannot make sure the values entered in the ptxconfig menu are the same
> > > as in the platformconfig menu. So I'd rather leave it like it is now.
> > > The image build will fail anyways with "Failed to create bundle:
> > > Missing value for key 'compatible'" if RAUC is disabled. So maybe add a
> > > short snippet in the image-rauc help text that rauc must be
> > > enabled?
> > Would be welcome.
> > 
> > So if the flexibility to define the compatibility string in menu- or platformconfig is not welcome,
> > we are back at the discussion, if compatibility string should resident in menu- or platformconfig.
> 
> Ah yes, I lost track of the original question…
> 
> > I believe that there are more applications that use multiple different images on one platform.
> > This would give a tendency to menuconfig, but with variables it does not matter where it is technically.
> > Robins core problem seems to be, that there is no place where he can store the compatibility platform name (the old one).
> 
> Hmm yes, these could both be valid use cases.
> 
> Yesterday I noticed that when you define the same variable in menuconfig
> and platformconfig, the value from the platform gets priority. I don't
> know if that is by design, but if it is, maybe we could do something
> like this (and RAUC_BUNDLE_VERSION should be in platforms/image-rauc.in in any
> case):

RAUC_COMPATIBLE is a string. It can contain other variables. So you could
set it like this:

PTXCONF_RAUC_COMPATIBLE="${PTXCONF_MY_COMPATIBLE}"

and add

config MY_COMPATIBLE
	string
	...

Somewhere to in the platformconfig. No need to overwrite any existing
rules.

> 
> diff --git a/platforms/image-rauc.in b/platforms/image-rauc.in
> index 1f9427b40f42..4b194b6fa287 100644
> --- a/platforms/image-rauc.in
> +++ b/platforms/image-rauc.in
> @@ -19,6 +19,14 @@ menuconfig IMAGE_RAUC
>  
>  if IMAGE_RAUC
>  
> +config IMAGE_RAUC_OVERRIDE_PTXCONFIG
> +       bool
> +       prompt "override compatible from ptxconfig"
> +
> +if IMAGE_RAUC_OVERRIDE_PTXCONFIG
> +source "platforms/rauc-compatible.in"
> +endif
> +
>  config IMAGE_RAUC_DESCRIPTION
>         prompt "RAUC Bundle Description"
>         string
> diff --git a/platforms/rauc-compatible.in b/platforms/rauc-compatible.in
> new file mode 100644
> index 000000000000..01fde16c35d5
> --- /dev/null
> +++ b/platforms/rauc-compatible.in
> @@ -0,0 +1,10 @@
> +config RAUC_COMPATIBLE
> +       string
> +       prompt "RAUC Compatible"
> +       default "${PTXCONF_PROJECT_VENDOR}\ ${PTXCONF_PROJECT}"
> +       help
> +         An explicit identification string that RAUC uses to assure an update
> +         bundle matches with the correct root filesystem on the target.
> +
> +         Only if the compatible in the targets RAUC system.conf file and those
> +         in the Bundle's manifest match exactly, an update will be performed
> diff --git a/rules/rauc.in b/rules/rauc.in
> index 744bc95d9d6d..6d0e224b181b 100644
> --- a/rules/rauc.in
> +++ b/rules/rauc.in
> @@ -63,16 +63,7 @@ config RAUC_CONFIGURATION
>  
>  if RAUC_CONFIGURATION
>  
> -config RAUC_COMPATIBLE
> -       string
> -       prompt "RAUC Compatible"
> -       default "${PTXCONF_PROJECT_VENDOR}\ ${PTXCONF_PROJECT}"
> -       help
> -         An explicit identification string that RAUC uses to assure an update
> -         bundle matches with the correct root filesystem on the target.
> -
> -         Only if the compatible in the targets RAUC system.conf file and those
> -         in the Bundle's manifest match exactly, an update will be performed
> +source "platforms/rauc-compatible.in"

Now we have two versions of the same variable with possibly different
values. Not a good idea. And I'm not certain if ptx- and platformconfig are
always evaluated in the same order.

Michael

>  
>  config RAUC_BUNDLE_VERSION
>         string
> 
> 
> -- 
> Roland Hieber, Pengutronix e.K.          | r.hieber@pengutronix.de     |
> Steuerwalder Str. 21                     | https://www.pengutronix.de/ |
> 31137 Hildesheim, Germany                | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686         | Fax:   +49-5121-206917-5555 |
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

      reply	other threads:[~2021-09-03 14:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-18 13:17 Robin van der Gracht
2021-08-18 13:52 ` Bastian Krause
2021-08-18 14:16   ` Robin van der Gracht
2021-08-23  4:27     ` Denis Osterland-Heim
2021-08-23  6:54       ` Robin van der Gracht
2021-08-23  7:41         ` Denis Osterland-Heim
2021-08-23  9:13           ` Roland Hieber
2021-08-24  6:44             ` Denis Osterland-Heim
2021-08-24  7:39               ` Robin van der Gracht
2021-08-24 13:03               ` rhi
2021-09-03 14:36                 ` Michael Olbrich [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210903143618.GL4027748@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=denis.osterland@diehl.com \
    --cc=ptxdist@pengutronix.de \
    --cc=rhi@pengutronix.de \
    --cc=robin@protonic.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox