* [PATCH] bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images
@ 2013-09-11 22:09 Jason Wessel
2013-09-11 23:15 ` Khem Raj
0 siblings, 1 reply; 3+ messages in thread
From: Jason Wessel @ 2013-09-11 22:09 UTC (permalink / raw)
To: Openembedded-core
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@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}
+
+ install -d ${D}${bindir}/
+ install ${STAGE_TEMP}/usr/bin/* ${D}${bindir}/
+}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images
2013-09-11 22:09 [PATCH] bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images Jason Wessel
@ 2013-09-11 23:15 ` Khem Raj
2013-09-12 0:51 ` Jason Wessel
0 siblings, 1 reply; 3+ messages in thread
From: Khem Raj @ 2013-09-11 23:15 UTC (permalink / raw)
To: Jason Wessel; +Cc: Openembedded-core@lists.openembedded.org
[-- Attachment #1: Type: text/plain, Size: 4680 bytes --]
On Wednesday, September 11, 2013, Jason Wessel <jason.wessel@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@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@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
[-- Attachment #2: Type: text/html, Size: 6552 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images
2013-09-11 23:15 ` Khem Raj
@ 2013-09-12 0:51 ` Jason Wessel
0 siblings, 0 replies; 3+ messages in thread
From: Jason Wessel @ 2013-09-12 0:51 UTC (permalink / raw)
To: Khem Raj; +Cc: Openembedded-core@lists.openembedded.org
On 09/11/2013 06:15 PM, Khem Raj wrote:
>
>
> On Wednesday, September 11, 2013, Jason Wessel <jason.wessel@windriver.com <mailto:jason.wessel@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@windriver.com <mailto:jason.wessel@windriver.com>>
>> ---
>> meta/classes/bootimg.bbclass | 21 ++++++++++++++--
>> .../zisofs-tools/zisofs-tools-native_1.0.8.bb <http://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 <http://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 <http://zisofs-tools-native_1.0.8.bb> b/meta/recipes-devtools/zisofs-tools/zisofs-tools-native_1.0.8.bb <http://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 <http://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 <http://pkgs.fedoraproject.org/repo/pkgs/zisofs-tools/zisofs-tools-$%7BPV%7D.tar.bz2/2d0ed8c9a1f60b45f949b136f9be1f6c/zisofs-tools-$%7BPV%7D.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}
Not being the originator of this patch, I took a look and it is all a game to not copy the man page and ensure that ${bindir} is used.
I'll send a v2 shortly and catch this kind of problem in the future.
Thanks,
Jason.
>
>
>> +
>> + install -d ${D}${bindir}/
>> + install ${STAGE_TEMP}/usr/bin/* ${D}${bindir}/
>> +}
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org <mailto:Openembedded-core@lists.openembedded.org>
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-09-12 0:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-11 22:09 [PATCH] bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images Jason Wessel
2013-09-11 23:15 ` Khem Raj
2013-09-12 0:51 ` Jason Wessel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox