summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes-recipe/genimage.bbclass16
1 files changed, 16 insertions, 0 deletions
diff --git a/classes-recipe/genimage.bbclass b/classes-recipe/genimage.bbclass
index d73fbff..b6061b0 100644
--- a/classes-recipe/genimage.bbclass
+++ b/classes-recipe/genimage.bbclass
@@ -72,6 +72,8 @@
# GENIMAGE_ROOTFS_IMAGE_FSTYPE - input roofs FSTYPE to use (default: 'tar.bz2')
# GENIMAGE_ROOTFS_IMAGE_SUFFIX - IMAGE_NAME_SUFFIX to use (default: '${IMAGE_NAME_SUFFIX}')
# GENIMAGE_VARIABLES[VAR] - replace @VAR@ in config with variable flag value
+# GENIMAGE_COMPRESSION - compress the generated image. Allowed values
+# are 'none' for no compression (the default), 'gzip' and 'xz'.
inherit image-artifact-names deploy
@@ -112,6 +114,18 @@ do_genimage[depends] += "${@'${GENIMAGE_ROOTFS_IMAGE}:do_image_complete' if '${G
GENIMAGE_CREATE_BMAP ?= "0"
do_genimage[depends] += "${@'bmaptool-native:do_populate_sysroot' if d.getVar('GENIMAGE_CREATE_BMAP') == '1' else ''}"
+GENIMAGE_COMPRESSION ??= "none"
+
+GENIMAGE_COMPRESS_DEPENDS[none] = ""
+GENIMAGE_COMPRESS_DEPENDS[gzip] = "pigz-native:do_populate_sysroot"
+GENIMAGE_COMPRESS_DEPENDS[xz] = "xz-native:do_populate_sysroot"
+do_genimage[depends] += "${@d.getVarFlag('GENIMAGE_COMPRESS_DEPENDS', '${GENIMAGE_COMPRESSION}')}"
+
+GENIMAGE_COMPRESS_CMD[none] = ":"
+GENIMAGE_COMPRESS_CMD[gzip] = "gzip -f -9 -n"
+GENIMAGE_COMPRESS_CMD[xz] = "xz -f"
+GENIMAGE_COMPRESS_CMD = "${@d.getVarFlag('GENIMAGE_COMPRESS_CMD', '${GENIMAGE_COMPRESSION}')}"
+
GENIMAGE_TMPDIR = "${WORKDIR}/genimage-tmp"
GENIMAGE_ROOTDIR = "${WORKDIR}/root"
GENIMAGE_OPTS ??= ""
@@ -165,6 +179,8 @@ fakeroot do_genimage () {
bmaptool create -o ${B}/${GENIMAGE_IMAGE_FULLNAME}.bmap ${B}/${GENIMAGE_IMAGE_FULLNAME}
fi
+ ${GENIMAGE_COMPRESS_CMD} ${B}/${GENIMAGE_IMAGE_FULLNAME}
+
rm ${B}/.config
}
do_genimage[depends] += "virtual/fakeroot-native:do_populate_sysroot"