[OE-core] [PATCH] bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images

Khem Raj raj.khem at gmail.com
Wed Sep 11 23:15:43 UTC 2013


On Wednesday, September 11, 2013, Jason Wessel <jason.wessel at windriver.com>
wrote:
> The mkzftree is needed to allow ISO images to be compressed with
> minimal runtime overhead.  Below is an example of the savings on a
> core-image-minimal.
>
> Before ls -l:
> 24117248 core-image-minimal-qemux86-64.iso
>
> Using the mkzftree ls -l:
> 16777216 core-image-minimal-qemux86-64.iso
>
> Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
> ---
>  meta/classes/bootimg.bbclass                       |   21
++++++++++++++--
>  .../zisofs-tools/zisofs-tools-native_1.0.8.bb      |   26
++++++++++++++++++++
>  2 files changed, 45 insertions(+), 2 deletions(-)
>  create mode 100644 meta/recipes-devtools/zisofs-tools/
zisofs-tools-native_1.0.8.bb
>
> diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass
> index 90a241d..b312e0d 100644
> --- a/meta/classes/bootimg.bbclass
> +++ b/meta/classes/bootimg.bbclass
> @@ -19,19 +19,23 @@
>
>  # External variables (also used by syslinux.bbclass)
>  # ${INITRD} - indicates a filesystem image to use as an initrd (optional)
> +# ${COMPRESSISO}
>  # ${NOISO}  - skip building the ISO image if set to 1
>  # ${NOHDD}  - skip building the HDD image if set to 1
>  # ${ROOTFS} - indicates a filesystem image to include as the root
filesystem (optional)
>
> +COMPRESSISO ?= ""
>  do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
>                          mtools-native:do_populate_sysroot \
> -                        cdrtools-native:do_populate_sysroot"
> +                        cdrtools-native:do_populate_sysroot \
> +
 ${@oe.utils.ifelse(d.getVar('COMPRESSISO'),'zisofs-tools-native:do_populate_sysroot','')}"
>
>  PACKAGES = " "
>  EXCLUDE_FROM_WORLD = "1"
>
>  HDDDIR = "${S}/hddimg"
>  ISODIR = "${S}/iso"
> +COMPACT_ISODIR = "${S}/iso.z"
>
>  BOOTIMG_VOLUME_ID   ?= "boot"
>  BOOTIMG_EXTRA_SPACE ?= "512"
> @@ -92,10 +96,23 @@ build_iso() {
>                 grubefi_iso_populate
>         fi
>
> +       if [ "${COMPRESSISO}" = "1" ] ; then
> +               # create compact directory, compress iso
> +               mkdir -p ${COMPACT_ISODIR}
> +               mkzftree -z 9 -p 4 -F ${ISODIR}/rootfs.img
${COMPACT_ISODIR}/rootfs.img
> +
> +               # move compact iso to iso, then remove compact directory
> +               mv ${COMPACT_ISODIR}/rootfs.img ${ISODIR}/rootfs.img
> +               rm -Rf ${COMPACT_ISODIR}
> +               mkisofs_opts="-r"
> +       else
> +               mkisofs_opts="-R -z -D -l"
> +       fi
> +
>         if [ "${PCBIOS}" = "1" ]; then
>                 mkisofs -V ${BOOTIMG_VOLUME_ID} \
>                         -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
> -                       -b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} -r \
> +                       -b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} $mkisofs_opts
\
>                         ${MKISOFS_OPTIONS} ${ISODIR}
>         else
>                 bbnote "EFI-only ISO images are untested, please provide
feedback."
> diff --git a/meta/recipes-devtools/zisofs-tools/
zisofs-tools-native_1.0.8.bb b/meta/recipes-devtools/zisofs-tools/
zisofs-tools-native_1.0.8.bb
> new file mode 100644
> index 0000000..b590854
> --- /dev/null
> +++ b/meta/recipes-devtools/zisofs-tools/zisofs-tools-native_1.0.8.bb
> @@ -0,0 +1,26 @@
> +# zisofs-tools-native OE build file
> +# Copyright (C) 1989, 1991 Free Software Foundation, Inc.
> +SUMMARY = "A set of tools for iso file compression"
> +DESCRIPTION = "A set of tools for iso file compression"
> +HOMEPAGE = "http://http://freecode.com/projects/zisofs-tools"
> +SECTION = "console/utils"
> +LICENSE = "GPLv2"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
> +PR = "r0"
> +
> +SRC_URI = "
http://pkgs.fedoraproject.org/repo/pkgs/zisofs-tools/zisofs-tools-${PV}.tar.bz2/2d0ed8c9a1f60b45f949b136f9be1f6c/zisofs-tools-${PV}.tar.bz2
"
> +
> +SRC_URI[md5sum] = "2d0ed8c9a1f60b45f949b136f9be1f6c"
> +SRC_URI[sha256sum] =
"ae4e53e4914934d41660248fb59d3c8761f1f1fd180d5ec993c17ddb3afd04f3"
> +
> +inherit native
> +
> +STAGE_TEMP = "${WORKDIR}/image-temp"
> +
> +do_install() {
> +       install -d ${STAGE_TEMP}
> +       make install INSTALLROOT=${STAGE_TEMP}

why cant INSTALLROOT be pointing to ${D}


> +
> +       install -d ${D}${bindir}/
> +       install ${STAGE_TEMP}/usr/bin/* ${D}${bindir}/
> +}
> --
> 1.7.9.5
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20130911/36d97d42/attachment-0002.html>


More information about the Openembedded-core mailing list