[v6,3/8] wic-img: Satisfy the quirks of latest wic

Message ID 20201014132729.18571-4-Vijaikumar_Kanagarajan@mentor.com
State Accepted, archived
Headers show
Series WIC update | expand

Commit Message

Vijai Kumar K Oct. 14, 2020, 4:27 a.m. UTC
The latest WIC doesnot use fakeroot if pseudo_dir(IMAGE_ROOTFS/../pseudo)
is non-existent. This results in wic_fakeroot not being used. Create a
dummy pseudo_dir to satisfy wic.

WIC hardcodes the python(/usr/bin/python3-native/python3) to be used
while running bmaptool. The above path is OE specific and hence breaks
build in ISAR. Create a symbolic link in the above location to satisfy
wic.

In case of stretch, bmaptool is based on python2. In case of buster
and beyond it is python3. Grep the first line of bmaptool to find out
which version of python is used and symlink the appropriate binary
to /usr/bin/python3-native/python3.

Signed-off-by: Vijai Kumar K <Vijaikumar_Kanagarajan@mentor.com>
---
 meta/classes/wic-img.bbclass | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

Patch

diff --git a/meta/classes/wic-img.bbclass b/meta/classes/wic-img.bbclass
index 0ec9575..057429f 100644
--- a/meta/classes/wic-img.bbclass
+++ b/meta/classes/wic-img.bbclass
@@ -143,6 +143,7 @@  EOSUDO
     export FAKEROOTCMD=${FAKEROOTCMD}
     export BUILDDIR=${BUILDDIR}
     export MTOOLS_SKIP_CHECK=1
+    mkdir -p ${IMAGE_ROOTFS}/../pseudo
 
     # create the temp dir in the buildchroot to ensure uniqueness
     WICTMP=$(cd ${BUILDCHROOT_DIR}; mktemp -d -p tmp)
@@ -158,22 +159,31 @@  EOSUDO
           IMAGE_FULLNAME="$7"
           IMAGE_BASENAME="$8"
           shift 8
-
+          # The python path is hard-coded as /usr/bin/python3-native/python3 in wic. Handle that.
+          mkdir -p /usr/bin/python3-native/
+          if [ $(head -1 $(which bmaptool) | grep python3) ];then
+            ln -s /usr/bin/python3 /usr/bin/python3-native/python3
+          else
+            ln -s /usr/bin/python2 /usr/bin/python3-native/python3
+          fi
           export PATH="$BITBAKEDIR/bin:$PATH"
           "$SCRIPTSDIR"/wic create "$WKS_FULL_PATH" \
             --vars "$STAGING_DIR/$MACHINE/imgdata/" \
             -o "/$WICTMP/${IMAGE_FULLNAME}.wic/" \
             --bmap \
-            -e "$IMAGE_BASENAME" $@' \
+            -e "$IMAGE_BASENAME" $@
+          rm -rf /usr/bin/python3-native' \
               my_script "${BITBAKEDIR}" "${SCRIPTSDIR}" "${WKS_FULL_PATH}" "${STAGING_DIR}" \
               "${MACHINE}" "${WICTMP}" "${IMAGE_FULLNAME}" "${IMAGE_BASENAME}" \
               ${WIC_CREATE_EXTRA_ARGS}
+
     sudo chown -R $(stat -c "%U" ${LAYERDIR_core}) ${LAYERDIR_core} ${LAYERDIR_isar} ${SCRIPTSDIR} || true
     WIC_DIRECT=$(ls -t -1 ${BUILDCHROOT_DIR}/$WICTMP/${IMAGE_FULLNAME}.wic/*.direct | head -1)
     sudo chown -R $(id -u):$(id -g) ${BUILDCHROOT_DIR}/${WICTMP}
     mv -f ${WIC_DIRECT} ${WIC_IMAGE_FILE}
     mv -f ${WIC_DIRECT}.bmap ${WIC_IMAGE_FILE}.bmap
     rm -rf ${BUILDCHROOT_DIR}/${WICTMP}
+    rm -rf ${IMAGE_ROOTFS}/../pseudo
 }
 
 do_wic_image[file-checksums] += "${WKS_FILE_CHECKSUM}"