mbox series

[isar-cip-core,v5,0/4] Integrate Delta Update with rdiff_image and delta handler

Message ID 20240506154130.840349-1-Adithya.Balakumar@toshiba-tsip.com (mailing list archive)
Headers show
Series Integrate Delta Update with rdiff_image and delta handler | expand

Message

Adithya Balakumar May 6, 2024, 3:41 p.m. UTC
These series of patches enable the support for delta update for the root file system with swupdate's
rdiff_image and delta handler(zchunk).

A couple notes about the implementation:
- In this patchset, Delta update is only supported for the root file system.
- The newly added delta-update.bbclass handles the creation of the delta update artifacts.
- The update handler type i.e rdiff_image or delta handler is set in the variable "DELTA_UPDATE_TYPE"
in the delta-update.yml file along with some variables required for each handler.
- The creation of delta artifact for the rdiff_image handler requires a reference image (against which
the delta is computed). Currently the reference artifact file (.squashfs/.verity) is passed to the
build system by placing the artifact in the path "${TOPDIR}/previous-image" and setting the name of the
artifact in the variable DELTA_RDIFF_REF_IMAGE in the delta-update.yml file.
- zchunk based delta update is only supported for sid onwards.

Changes in v5:
- Introduce delta-update.yml file for delta update related configs.
- Set rdiff as the default for delta update type.
- Add delta update option in Kconfig menu.

Changes in v4:
- Create only 1 .swu file, either delta or complete swu.
- By default complete update swu is created.

Changes in v3:
- Rebase to current next branch (61e998e1e0541e2713c05fcbf21df39fbc882a0a)
- Set "${TOPDIR}/previous-image" as the path for the previous image artifact for rdiff update.
- README updates to verify delta update.

Changes in v2:
- Removed zchunk support for bookworm (due to use of backports). Currently zchunk based update only supported in Sid.
- Removed delta-update.yml file. Related variables have default values and can be set in manually swupdate.yml file.
- Using .squashfs file (.verity file in the case of Secure boot) for rdiff delta creation instead of .wic file.
- rdiff is set as default for delta update type, the build system looks for the v1 artifact in a default path (image-v1/<artifact_name>).
- Created a separate template file for sw-description of delta update.
- Renamed delta_update.bbclass to delta-update.bbclass.


Adithya Balakumar (4):
  Add Delta update support with rdiff_image and delta handler
  swupdate.bbclass: Generate swu for delta updates
  doc/README.swupdate.md: Update steps to test Delta software Update
  Kconfig: Add delta update option

 Kconfig                                     |  16 +++
 classes/delta-update.bbclass                | 102 ++++++++++++++++++++
 classes/swupdate.bbclass                    |  32 +++++-
 conf/layer.conf                             |   2 +-
 doc/README.swupdate.md                      |  59 +++++++++++
 kas/opt/delta-update.yml                    |  20 ++++
 recipes-core/images/swu/sw-description.tmpl |   5 +-
 7 files changed, 230 insertions(+), 6 deletions(-)
 create mode 100644 classes/delta-update.bbclass
 create mode 100644 kas/opt/delta-update.yml

Comments

Jan Kiszka May 7, 2024, 6:23 a.m. UTC | #1
On 06.05.24 17:41, Adithya Balakumar wrote:
> These series of patches enable the support for delta update for the root file system with swupdate's
> rdiff_image and delta handler(zchunk).
> 
> A couple notes about the implementation:
> - In this patchset, Delta update is only supported for the root file system.
> - The newly added delta-update.bbclass handles the creation of the delta update artifacts.
> - The update handler type i.e rdiff_image or delta handler is set in the variable "DELTA_UPDATE_TYPE"
> in the delta-update.yml file along with some variables required for each handler.
> - The creation of delta artifact for the rdiff_image handler requires a reference image (against which
> the delta is computed). Currently the reference artifact file (.squashfs/.verity) is passed to the
> build system by placing the artifact in the path "${TOPDIR}/previous-image" and setting the name of the
> artifact in the variable DELTA_RDIFF_REF_IMAGE in the delta-update.yml file.
> - zchunk based delta update is only supported for sid onwards.
> 
> Changes in v5:
> - Introduce delta-update.yml file for delta update related configs.
> - Set rdiff as the default for delta update type.
> - Add delta update option in Kconfig menu.
> 
> Changes in v4:
> - Create only 1 .swu file, either delta or complete swu.
> - By default complete update swu is created.
> 
> Changes in v3:
> - Rebase to current next branch (61e998e1e0541e2713c05fcbf21df39fbc882a0a)
> - Set "${TOPDIR}/previous-image" as the path for the previous image artifact for rdiff update.
> - README updates to verify delta update.
> 
> Changes in v2:
> - Removed zchunk support for bookworm (due to use of backports). Currently zchunk based update only supported in Sid.
> - Removed delta-update.yml file. Related variables have default values and can be set in manually swupdate.yml file.
> - Using .squashfs file (.verity file in the case of Secure boot) for rdiff delta creation instead of .wic file.
> - rdiff is set as default for delta update type, the build system looks for the v1 artifact in a default path (image-v1/<artifact_name>).
> - Created a separate template file for sw-description of delta update.
> - Renamed delta_update.bbclass to delta-update.bbclass.
> 
> 
> Adithya Balakumar (4):
>   Add Delta update support with rdiff_image and delta handler
>   swupdate.bbclass: Generate swu for delta updates
>   doc/README.swupdate.md: Update steps to test Delta software Update
>   Kconfig: Add delta update option
> 
>  Kconfig                                     |  16 +++
>  classes/delta-update.bbclass                | 102 ++++++++++++++++++++
>  classes/swupdate.bbclass                    |  32 +++++-
>  conf/layer.conf                             |   2 +-
>  doc/README.swupdate.md                      |  59 +++++++++++
>  kas/opt/delta-update.yml                    |  20 ++++
>  recipes-core/images/swu/sw-description.tmpl |   5 +-
>  7 files changed, 230 insertions(+), 6 deletions(-)
>  create mode 100644 classes/delta-update.bbclass
>  create mode 100644 kas/opt/delta-update.yml
> 

I've tested it yesterday, and it worked nicely (even with secure boot
enabled). I just have two small comments on patch 1 now.

Jan