[meta-intel] [PATCH 1/2] meta-isg: zlib-qat: fix for unpack and patch error

Rahul Kumar Gupta rahul.kumarxx.gupta at intel.com
Wed Aug 3 00:59:52 PDT 2016


zlib-qat is different from other packages in the way
that it has a patch present in a zip file that is
unpacked and applied on top of zlib. This results in
errors when doing an incremental build using bitbake.

To resolve, splitted do_patch into two - one to unpack
the qat patch and apply it on zlib-1.2.8. And, other to
apply the patches added in SRC_URI.

Added flags "-q -o" flags to unzip command to quietly overwrite if
files/folders already exist to avoid build from breaking.

Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta at intel.com>
---
 .../zlib-qat/zlib-qat_0.4.7-002.bb                 | 40 ++++++++++++++--------
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/meta-isg/common/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb b/meta-isg/common/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb
index 9c95adb..825fbfa 100644
--- a/meta-isg/common/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb
+++ b/meta-isg/common/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb
@@ -33,6 +33,7 @@ COMPATIBLE_MACHINE = "crystalforest|intel-corei7-64"
 
 ZLIB_VERSION = "1.2.8"
 ZLIB_QAT_VERSION = "0.4.7-002"
+QAT_PATCH_VERSION = "l.0.4.7_002"
 
 S = "${WORKDIR}/zlib-${ZLIB_VERSION}"
 
@@ -51,22 +52,33 @@ TARGET_CC_ARCH += "${LDFLAGS}"
 inherit module
 MEM_PATH = "${S}/contrib/qat"
 
-do_unpack2(){
-	cd ${WORKDIR}/
-	unzip zlib_quickassist_patch_l.0.4.7_002_stable.zip
-	cd zlib_quickassist_patch_l.0.4.7_002_devbranch
-	tar -xvzf zlib-1.2.8-qat.L.0.4.7-002.tar.gz
-	cp zlib-1.2.8-qat.patch ${WORKDIR}
+zlibqat_do_patch() {
+	cd ${WORKDIR}
+        unzip -q -o zlib_quickassist_patch_${QAT_PATCH_VERSION}_stable.zip
+        cd zlib_quickassist_patch_${QAT_PATCH_VERSION}_devbranch
+        tar -xvzf zlib-${ZLIB_VERSION}-qat.L.${ZLIB_QAT_VERSION}.tar.gz
+        cp -f zlib-${ZLIB_VERSION}-qat.patch ${WORKDIR}
+        cd ${S}
+        if [ ! -d ${S}/debian/patches ]; then
+                mkdir -p ${S}/debian/patches
+                cp -f ${WORKDIR}/zlib-${ZLIB_VERSION}-qat.patch ${S}/debian/patches
+                echo "zlib-${ZLIB_VERSION}-qat.patch -p1" > ${S}/debian/patches/series
+        fi
+        quilt pop -a || true
+        if [ -d ${S}/.pc-zlibqat ]; then
+                rm -rf ${S}/.pc
+                mv ${S}/.pc-zlibqat ${S}/.pc
+                QUILT_PATCHES=${S}/debian/patches quilt pop -a
+                rm -rf ${S}/.pc
+        fi
+        QUILT_PATCHES=${S}/debian/patches quilt push -a
+        mv ${S}/.pc ${S}/.pc-zlibqat
 }
 
-addtask unpack2 after do_unpack before do_patch
-
-do_patch() {
-	cd ${S}
-	patch -p1  < ${WORKDIR}/zlib-1.2.8-qat.patch
-	patch -p1  < ${WORKDIR}/zlib-qat-0.4.7-002-qat_mem-build-qat_mem-ko-against-yocto-kernel-src.patch
-        patch -p1  < ${WORKDIR}/zlib-qat-0.4.7-002-zlib-qat-add-a-install-target-to-makefile.patch
-        patch -p1  < ${WORKDIR}/zlib-qat-0.4.7-002-zlib-Remove-rpaths-from-makefile.patch        
+# We invoke base do_patch at end, to incorporate any local patch
+python do_patch() {
+    bb.build.exec_func('zlibqat_do_patch', d)
+    bb.build.exec_func('patch_do_patch', d)
 }
 
 do_configure() {
-- 
1.9.1



More information about the meta-intel mailing list