Skip to content

Add support for full custom update handler#363

Open
dennisvec wants to merge 1 commit intorauc:kirkstonefrom
dennisvec:full-custom-update-krikstone
Open

Add support for full custom update handler#363
dennisvec wants to merge 1 commit intorauc:kirkstonefrom
dennisvec:full-custom-update-krikstone

Conversation

@dennisvec
Copy link
Copy Markdown

Rauc allows a script to be defined that will perform a full custom update. This script is referenced in the manifest in a section called [handler]. Allow users to specify a script to be provided for this purpose.

Rauc allows a script to be defined that will perform a full custom
update. This script is referenced in the manifest in a section called
[handler]. Allow users to specify a script to be provided for this
purpose.

Signed-off-by: Dennis Van Ee <dennis.vanee@vecima.com>
@jluebbe
Copy link
Copy Markdown
Member

jluebbe commented Dec 18, 2024

I would have expected that a full custom update bundle would be built outside of any build system, as it should be a one-time recovery operation. What is your use-case to generate them via Yocto?

@jluebbe
Copy link
Copy Markdown
Member

jluebbe commented Feb 24, 2025

@dennisvec Could you describe you use-case? Otherwise, I'd tend to close this PR.

@jluebbe jluebbe added the kirkstone kirkstone release-related label Feb 24, 2025
@dennisvec
Copy link
Copy Markdown
Author

In our case the slots on the target system are changing quite frequently (we are adding new slots). Changing slots is somewhat difficult to do since the system.conf needs to be upgraded prior to supporting the slot so this either requires a 2 step upgrade, or some out-of-band method to upgrade system.conf and restarting rauc prior to starting the upgrade. To avoid these issues, we just implemented a custom upgrade handler that works without a system.conf upgrade. Our use case is somewhat corner case; however, rauc does support full-custom-update for special situations (recovery, testing, migration), and if you are already using yocto to build bundles, IMO, it makes more sense to continue to do so for a special use case rather than trying to build a custom bundle manually. We use rauc on a number of projects and frequently encounter the situation where one or more slots need to be added at some point during the lifecycle. The full custom update handler provides a reasonably painless way to do this migration.

@ejoerns
Copy link
Copy Markdown
Member

ejoerns commented Apr 3, 2025

@dennisvec Having the slot layout changing quite frequently sounds like a more unusual usage of RAUC. Could you explain this a bit more detailed? Do you repartition your device that often?

My fear would also be that with having dedicated support for it in this class, people see the full custom handler as a proper way to implement things with.

We've declined another similar approach (#201), too.
As I noted there, it might be misleading to have an option that simply makes almost all class logic useless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kirkstone kirkstone release-related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants