public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Henning Schild <henning.schild@siemens.com>
To: Harald Seiler <hws@denx.de>
Cc: Jan Kiszka <jan.kiszka@siemens.com>,
	<isar-users@googlegroups.com>, Claudius Heine <ch@denx.de>
Subject: Re: [PATCH] image: Run copy_boot_files after rootfs postprocessing
Date: Fri, 26 Jun 2020 10:26:15 +0200	[thread overview]
Message-ID: <20200626102615.78cb3c3c@md1za8fc.ad001.siemens.net> (raw)
In-Reply-To: <dff034ea718d8f443c772a6a45e2a0f8398dbcea.camel@denx.de>

Am Fri, 26 Jun 2020 10:13:36 +0200
schrieb Harald Seiler <hws@denx.de>:

> Hello Henning,
> 
> On Thu, 2020-06-25 at 21:27 +0200, Henning Schild wrote:
> > Am Thu, 25 Jun 2020 21:23:54 +0200
> > schrieb "[ext] Henning Schild" <henning.schild@siemens.com>:
> >   
> > > Am Thu, 25 Jun 2020 20:43:07 +0200
> > > schrieb "[ext] Henning Schild" <henning.schild@siemens.com>:
> > >   
> > > > Am Thu, 25 Jun 2020 19:24:30 +0200
> > > > schrieb Harald Seiler <hws@denx.de>:
> > > >     
> > > > > Hello Henning,
> > > > > 
> > > > > On Thu, 2020-06-25 at 19:02 +0200, Jan Kiszka wrote:      
> > > > > > On 25.06.20 18:48, [ext] Henning Schild wrote:        
> > > > > > > Hi Harald,
> > > > > > > 
> > > > > > > can you elaborate on those cases? The postprocessing is
> > > > > > > hacky, if the problem is coming from your layer you
> > > > > > > should probably keep this patch in you layer.        
> > > > > > 
> > > > > > Basically do_generate_image_uuid from 
> > > > > > https://lore.kernel.org/cip-dev/20200625141015.31719-4-Quirin.Gylstorff@siemens.com/T/#u, 
> > > > > > just modeled as post-processing hook, rather than a task.
> > > > > >      
> > > > > 
> > > > > For reference, this is the exact code:
> > > > > 
> > > > >     ROOTFS_POSTPROCESS_COMMAND =+
> > > > > "image_postprocess_generate_uuid"
> > > > > image_postprocess_generate_uuid() { sudo sed -i
> > > > > '/^IMAGE_UUID=.*/d' '${IMAGE_ROOTFS}/etc/os-release' echo
> > > > > "IMAGE_UUID=\"${IMAGE_UUID}\"" | \ sudo tee -a
> > > > > '${IMAGE_ROOTFS}/etc/os-release'
> > > > > 
> > > > >         sudo -E chroot '${ROOTFSDIR}' \
> > > > >             update-initramfs -u
> > > > >     }      
> > > > 
> > > > If /etc/os-release goes into the initrd we have the issue with
> > > > image_postprocess_mark in isar, a valid reason for a merge.    
> 
> It does not.  The reason /etc/os-release and the initramfs become
> related here is because the IMAGE_UUID from the rootfs needs to be
> added into the initramfs so it can later identify the rootfs it
> belongs to (when multiple copies exist).  This is done by a separate
> initramfs hook installed as a package.
> 
> > > But that is not the case. You re-create the initrd in your layer
> > > so it might just be your problem! How about we discuss the
> > > IMAGE_UUID upstream together with the reordering?  
> > 
> > Or do we need the "update-initramfs -u" for image_postprocess_mark?
> >  
> 
> No, as described above, this is only necessary for IMAGE_UUID because
> there, a hook copies the IMAGE_UUID into the initramfs.  The rest of
> /etc/os-release is irrelevant for initrd (AFAIK).
> 
> > If so that should be done as a patch in this queue, you will get
> > your reordering for IMAGE_UUID in your layer if you decide to keep
> > that downstream.  
> 
> I don't know what the plan is; whether IMAGE_UUID should be
> upstreamed at some point.  Jan, you're probably the person to ask
> here?  From my side, I think this would be a useful feature to have.
> 
> > Henning
> >   
> > > Henning
> > >   
> > > > > > Jan
> > > > > >         
> > > > > > > Maybe you can point out an issue in isar itself, or
> > > > > > > explain how you got into this situation? We can then see
> > > > > > > if your change is generic enough for upstream. You could
> > > > > > > also provide the error-case from your layer as an
> > > > > > > upstream feature, if that is generic enough.        
> > > > > 
> > > > > I think this patch addresses an issue in isar itself.  There
> > > > > is no reason for copy_boot_files() to run before the
> > > > > postprocessing does. I've checked through the git history and
> > > > > the reason this relationship was introduced was a bigger
> > > > > refactor of the task dependency chain. It does not seem to be
> > > > > intentionally this way from what I can tell.      
> > > > 
> > > > Ok, sounds fair.  
> 
> In the other thread, Claudius has shed some light on the design
> decisions that let to this.  But let's keep that discussion over
> there.
> 
> > > > > The other way around makes more sense, in my opinion.  As
> > > > > stated in the commit message, postprocessing might do an
> > > > > update to the initramfs (as seen above) and this change needs
> > > > > to be reflected in the deployed initramfs as well, instead of
> > > > > silently only living in the version that is part of the
> > > > > rootfs.
> > > > > 
> > > > > I also checked all existing postprocessing commands and did
> > > > > not see any that assume to be run after the boot files have
> > > > > been deployed.      
> > > > 
> > > > I just worried about people abusing postprocess for changes that
> > > > should be packages instead. Thanks for going into detail!  
> 
> If you have a better approach than what I came up with, please do
> tell! I decided on postprocessing for a few reasons:
> 
> - The IMAGE_UUID is an 'image feature' as in, the image recipe should
>   decide what its ID is (an image inheriting `image_uuid` can set the
> ID string).  So pushing that into a package is difficult.
> - As this only adds a value to /etc/os-release instead of deploying
> the whole file, a package approach would need to work via postinst
> which seems like a hack to me.
> - The previous approach from Quirin was to add a separate task for
> adding the UUID.  This task can then be placed in the dependency
> chain where I have now moved the postprocessing but this feels like
> duplicated work when a postprocessing task exists as a feature
> already.

I did not read this since nobody proposed the UUID-feature. Upstream
should not care about all of this. There are two different potential
changes in some layers that favor one or the other order.
But there is no reason for Isar to change the order. A patch without a
use-case needs to be rejected.
And i think that Claudius "made up cleaning step" might actually be
somewhere out there. So we are talking about an interface change
without a use-case ... strong reject!

Henning

  parent reply	other threads:[~2020-06-26  8:26 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-25 15:33 Harald Seiler
2020-06-25 16:48 ` Henning Schild
2020-06-25 17:02   ` Jan Kiszka
2020-06-25 17:24     ` Harald Seiler
2020-06-25 18:43       ` Henning Schild
2020-06-25 19:23         ` Henning Schild
2020-06-25 19:27           ` Henning Schild
2020-06-26  8:13             ` Harald Seiler
2020-06-26  8:19               ` Jan Kiszka
2020-06-26  8:26               ` Henning Schild [this message]
2020-06-26  8:44                 ` Jan Kiszka
2020-06-26  9:15                   ` Henning Schild
2020-06-26  7:17       ` Claudius Heine
2020-06-26  8:02         ` Harald Seiler
2020-06-26  9:12         ` Jan Kiszka
2020-06-29  9:04           ` Claudius Heine
2020-06-29  9:13             ` Jan Kiszka
2020-06-29 12:22           ` Harald Seiler
2020-06-29 12:41             ` Jan Kiszka
2020-06-29 12:55               ` Henning Schild
2020-06-29 13:25                 ` Jan Kiszka
2020-07-01  8:29               ` Claudius Heine
2020-10-13 10:19 ` Jan Kiszka
2020-10-13 10:26   ` Harald Seiler
2020-10-13 10:35     ` Jan Kiszka

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=20200626102615.78cb3c3c@md1za8fc.ad001.siemens.net \
    --to=henning.schild@siemens.com \
    --cc=ch@denx.de \
    --cc=hws@denx.de \
    --cc=isar-users@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    /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