classes/imagetypes: Fix image tarball by removing first level directory

Message ID 20230926162154.2346564-1-Quirin.Gylstorff@siemens.com
State Accepted, archived
Headers show
Series classes/imagetypes: Fix image tarball by removing first level directory | expand

Commit Message

Quirin Gylstorff Sept. 26, 2023, 4:21 p.m. UTC
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

Commit be7f0f('meta/classes/sdk.bbclass: add --transform in TAR_OPTIONS')
broke the usage of rootfs tarballs directly, e.g. as NFS root in LAVA,
by adding rootfs as the first level directory.

The patch adds the variable TAR_TRANSFORM to adjust the tarball structure
as necessary. The default replaces `rootfs` with `.` which restores the old
layout in the tarball.

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
 meta/classes/imagetypes.bbclass | 4 ++--
 meta/classes/sdk.bbclass        | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Uladzimir Bely Sept. 29, 2023, 6:45 a.m. UTC | #1
On Tue, 2023-09-26 at 18:21 +0200, 'Quirin Gylstorff' via isar-users
wrote:
> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> 
> Commit be7f0f('meta/classes/sdk.bbclass: add --transform in
> TAR_OPTIONS')
> broke the usage of rootfs tarballs directly, e.g. as NFS root in
> LAVA,
> by adding rootfs as the first level directory.
> 
> The patch adds the variable TAR_TRANSFORM to adjust the tarball
> structure
> as necessary. The default replaces `rootfs` with `.` which restores
> the old
> layout in the tarball.
> 
> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> ---
>  meta/classes/imagetypes.bbclass | 4 ++--
>  meta/classes/sdk.bbclass        | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 

Applied to next, thanks.

Patch

diff --git a/meta/classes/imagetypes.bbclass b/meta/classes/imagetypes.bbclass
index 6b612386..a3be0a1d 100644
--- a/meta/classes/imagetypes.bbclass
+++ b/meta/classes/imagetypes.bbclass
@@ -5,8 +5,8 @@ 
 
 #image type: tar
 IMAGER_INSTALL:tar = "tar"
-TAR_OPTIONS ?= ""
-
+TAR_TRANSFORM = "--transform='s|rootfs|.|'"
+TAR_OPTIONS:append = " ${TAR_TRANSFORM}"
 IMAGE_CMD:tar() {
     ${SUDO_CHROOT} tar ${TAR_OPTIONS} -cvSf \
                  ${IMAGE_FILE_CHROOT} --one-file-system -C ${PP} rootfs
diff --git a/meta/classes/sdk.bbclass b/meta/classes/sdk.bbclass
index 3d650a18..216213ac 100644
--- a/meta/classes/sdk.bbclass
+++ b/meta/classes/sdk.bbclass
@@ -53,7 +53,7 @@  ROOTFS_MANIFEST_DEPLOY_DIR:class-sdk = "${DEPLOY_DIR_SDKCHROOT}"
 ROOTFS_DPKGSTATUS_DEPLOY_DIR:class-sdk = "${DEPLOY_DIR_SDKCHROOT}"
 
 IMAGE_FSTYPES:class-sdk = "${SDK_FORMATS}"
-TAR_OPTIONS:append:class-sdk = " --transform="s|rootfs|${IMAGE_FULLNAME}|""
+TAR_TRANSFORM:class-sdk = " --transform='s|rootfs|${IMAGE_FULLNAME}|'"
 
 # bitbake dependencies
 SDKDEPENDS += "sdk-files ${SDK_INSTALL}"