populate_sdk_base.bbclass: use pbzip2 to compress SDK tar file
RFC PATCH 1/1 populate_sdk_base.bbclass: use pbzip2 to compress SDK tar file
Just a rough proof of concept, but the benefits seem worthwhile. Time to run 'bitbake -c populate_sdk <myimage>' on a 12 core build server reduces from 5m8 to 3m35.
Signed-off-by Andre McCurdy <[email protected]>
--- meta/classes/populate_sdk_base.bbclass | 6 +++--- meta/recipes-extended/pbzip2/pbzip2_1.1.12.bb | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-extended/pbzip2/pbzip2_1.1.12.bb
meta/classes/populate_sdk_base.bbclass +3 -3
@@ -40,7 +40,7 @@ TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= "" TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}" SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}" -SDK_DEPENDS = "virtual/fakeroot-native" +SDK_DEPENDS = "virtual/fakeroot-native pbzip2-native" # We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it # could be set to the MACHINE_ARCH
@@ -108,13 +108,13 @@ fakeroot create_sdk_files() { sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py } -SDKTAROPTS = "--owner=root --group=root -j" +SDKTAROPTS = "--owner=root --group=root" fakeroot tar_sdk() { # Package it up mkdir -p ${SDK_DEPLOY} cd ${SDK_OUTPUT}/${SDKPATH} - tar ${SDKTAROPTS} -c --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . + tar ${SDKTAROPTS} -cf - . | pbzip2 > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 } fakeroot create_shar() {
meta/recipes-extended/pbzip2/pbzip2_1.1.12.bb new file +27 -0
@@ -0,0 +1,27 @@ +SUMMARY = "PBZIP2 is a parallel implementation of bzip2" +DESCRIPTION = "PBZIP2 is a parallel implementation of the bzip2 block-sorting \ +file compressor that uses pthreads and achieves near-linear speedup on SMP \ +machines. The output of this version is fully compatible with bzip2 v1.0.2 or \ +newer (ie: anything compressed with pbzip2 can be decompressed with bzip2)." +HOMEPAGE = "http://compression.ca/pbzip2/" +SECTION = "console/utils" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=4c4f2edec9679d5abef3514a816b54a4" + +DEPENDS = "bzip2" + +SRC_URI = "https://launchpad.net/${BPN}/1.1/${PV}/+download/${BP}.tar.gz" + +SRC_URI[md5sum] = "91a4911b13305850423840eb0fa6f4f9" +SRC_URI[sha256sum] = "573bb358a5a7d3bf5f42f881af324cedf960c786e8d66dd03d448ddd8a0166ee" + +do_configure[noexec] = "1" + +EXTRA_OEMAKE = "CXX='${CXX} ${CXXFLAGS}' LDFLAGS='${LDFLAGS}'" + +do_install() { + install -d ${D}${bindir} + install -m 0755 pbzip2 ${D}${bindir}/ +} + +BBCLASSEXTEND = "native"
Signature · 1 line
1.9.1