Add support for full custom update handler#363
Add support for full custom update handler#363dennisvec wants to merge 1 commit intorauc:kirkstonefrom
Conversation
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>
|
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? |
|
@dennisvec Could you describe you use-case? Otherwise, I'd tend to close this PR. |
|
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. |
|
@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. |
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.