mbox series

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

Message ID 20240507091432.895626-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 7, 2024, 9:14 a.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 v6:
- Minor refactoring and improve error messages in delta-update.bbclass  

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                | 99 +++++++++++++++++++++
 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, 227 insertions(+), 6 deletions(-)
 create mode 100644 classes/delta-update.bbclass
 create mode 100644 kas/opt/delta-update.yml

Comments

Jan Kiszka May 7, 2024, 9:24 a.m. UTC | #1
On 07.05.24 11:14, 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 v6:
> - Minor refactoring and improve error messages in delta-update.bbclass  
> 
> 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                | 99 +++++++++++++++++++++
>  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, 227 insertions(+), 6 deletions(-)
>  create mode 100644 classes/delta-update.bbclass
>  create mode 100644 kas/opt/delta-update.yml
> 

Thanks a lot, applied to next.

Jan
Jan Kiszka May 10, 2024, 11:37 a.m. UTC | #2
On 07.05.24 11:14, 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.
> 

Just wondered if we shouldn't convert our current v2 tests in CI
(build_swu_v2: enable) to rdiff delta update. Any blockers for that?

Jan