From: Harald Seiler <hws@denx.de>
To: Claudius Heine <ch@denx.de>, Jan Kiszka <jan.kiszka@siemens.com>,
Henning Schild <henning.schild@siemens.com>
Cc: isar-users@googlegroups.com
Subject: Re: [PATCH] image: Run copy_boot_files after rootfs postprocessing
Date: Fri, 26 Jun 2020 10:02:05 +0200 [thread overview]
Message-ID: <65d916368b551945611f2bb4348bb53aca4ef88d.camel@denx.de> (raw)
In-Reply-To: <a1a65fd2-764a-d621-ffc8-9b0a6ce879fb@denx.de>
[-- Attachment #1: Type: text/plain, Size: 4377 bytes --]
Hello Claudius,
On Fri, 2020-06-26 at 09:17 +0200, Claudius Heine wrote:
> Hi Harald,
>
> On 2020-06-25 19:24, Harald Seiler wrote:
> > 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
> > }
> >
> > > 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.
> >
> > 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.
>
> Its been a while when I implemented this, but I also thought of the
> scenario where someone would like to 'minimize' a image via the root fs
> postprocessing by deleting everything that is not needed, and that could
> possible include the kernel + initramfs, if those are stored somewhere
> else outside the root file system. So the idea was, IIRC, to move the
> kernel and initrd to the deploy dir, out of harms way, before
> postprocessing does its rootfs manipulation.
>
> So by ordering the copy_boot_files behind the root fs post processing,
> you might break other layers that rely on this ordering and have such
> 'minimization' procedures, that remove the kernel package and specific
> files.
>
> We don't have such 'minimization' stuff in upstream isar, since it
> pretty much breaks apt and dpkg, but if you do image based update, you
> might not care.
I can see the use-case you are describing though I think mine (or rather
the one for IMAGE_UUID) is just as valid. Both are things that need to
happen after the rootfs has been created but before the imager is invoked.
The difference is that one needs to happen before copy_boot_files() and
one needs to happen after. I see two solutions:
- Either we split postprocessing into 'early' (before boot files are
deployed) and 'late' (after boot files have been deployed). This has
the disadvantage of further convoluting the task chain and isn't really
pretty in my opinion.
- The cleanup 'postprocessing' is treated special and a different solution
is created for it; one that runs after deploying the boot files. E.g.
a ROOTFS_CLEANUP_FILES variable which is filled with files and
directories to be removed before invoking the imager.
Maybe you have another idea for this?
--
Harald
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-62 Fax: +49-8142-66989-80 Email: hws@denx.de
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 850 bytes --]
next prev parent reply other threads:[~2020-06-26 8:02 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
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 [this message]
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=65d916368b551945611f2bb4348bb53aca4ef88d.camel@denx.de \
--to=hws@denx.de \
--cc=ch@denx.de \
--cc=henning.schild@siemens.com \
--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