From: Denys Dmytriyenko <[email protected]>

The entire rootfs/image processing infrastructure was rewritten in Python for
Daisy release. Since tisdk_image class is based on rootfs/image base classes
and uses their APIs, some adjustments are required in order for it to work.

Signed-off-by: Denys Dmytriyenko <[email protected]>
---
 meta-arago-distro/classes/tisdk-image.bbclass | 83 +++++++++++++--------------
 1 file changed, 39 insertions(+), 44 deletions(-)

diff --git a/meta-arago-distro/classes/tisdk-image.bbclass 
b/meta-arago-distro/classes/tisdk-image.bbclass
index b100261..6023d6b 100644
--- a/meta-arago-distro/classes/tisdk-image.bbclass
+++ b/meta-arago-distro/classes/tisdk-image.bbclass
@@ -65,18 +65,18 @@ def string_set(iterable):
 
 # Add a dependency for the do_rootfs function that will force us to build
 # the TARGET_IMAGES first so that they will be available for packaging.
-do_sdk_image[depends] += "${@string_set('%s:do_rootfs' % pn for pn in 
(d.getVar("TARGET_IMAGES", True) or "").split())}"
+do_rootfs[depends] += "${@string_set('%s:do_rootfs' % pn for pn in 
(d.getVar("TARGET_IMAGES", True) or "").split())}"
 
 # Add a dependency for the do_populate_sdk function of the TIDSK_TOOLCHAIN
 # variable which will force us to build the toolchain first so that it will be
 # available for packaging
-do_sdk_image[depends] += "${@string_set('%s:do_populate_sdk' % pn for pn in 
(d.getVar("TISDK_TOOLCHAIN", True) or "").split())}"
+do_rootfs[depends] += "${@string_set('%s:do_populate_sdk' % pn for pn in 
(d.getVar("TISDK_TOOLCHAIN", True) or "").split())}"
 
-do_sdk_image[nostamp] = "1"
-do_sdk_image[lockfiles] += "${IMAGE_ROOTFS}.lock"
-do_sdk_image[cleandirs] += "${S}"
+do_rootfs[nostamp] = "1"
+do_rootfs[lockfiles] += "${IMAGE_ROOTFS}.lock"
+do_rootfs[cleandirs] += "${S}"
 
-# Call the cleanup_host_packes to remove packages that should be removed from
+# Call the cleanup_host_packages to remove packages that should be removed from
 # the host for various reasons.  This may include licensing issues as well.
 OPKG_POSTPROCESS_COMMANDS = "cleanup_host_packages; "
 
@@ -92,25 +92,6 @@ cleanup_host_packages() {
     fi
 }
 
-# Copy log_check from image.bbclass since the rootfs_ipk_do_rootfs function
-# uses it, but we are not inheriting the full image class.
-log_check() {
-       for target in $*
-       do
-               lf_path="${WORKDIR}/temp/log.do_$target.${PID}"
-               
-               echo "log_check: Using $lf_path as logfile"
-               
-               if test -e "$lf_path"
-               then
-                       ${IMAGE_PKGTYPE}_log_check $target $lf_path
-               else
-                       echo "Cannot find logfile [$lf_path]"
-               fi
-               echo "Logfile is clean"
-       done
-}
-
 # Generate the header for a TI style software manifest
 sw_manifest_header() {
 echo "
@@ -235,7 +216,7 @@ echo "
 
 # Create the host side toolchain components table
 sw_manifest_toolchain_host() {
-    
opkg_dir="${IMAGE_ROOTFS}/${TISDK_TOOLCHAIN_PATH}/sysroots/i686-*-linux/var/lib/opkg/info"
+    
opkg_dir="${IMAGE_ROOTFS}/${TISDK_TOOLCHAIN_PATH}/sysroots/i686-*-linux/var/lib/opkg"
 
 echo "
 <h2><u>GPLv3 Development Host Content</u></h2>
@@ -471,24 +452,43 @@ generate_sw_manifest() {
     sw_manifest_footer
 }
 
+ROOTFS_PREPROCESS_COMMAND += "tisdk_image_setup; "
+ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; "
+IMAGE_PREPROCESS_COMMAND += "tisdk_image_cleanup; "
+
 # Create the SDK image.  We will re-use the rootfs_ipk_do_rootfs functionality
 # to install a given list of packages using opkg.
-do_sdk_image () {
-       set -x
-       rm -rf ${IMAGE_ROOTFS}
-       mkdir -p ${IMAGE_ROOTFS}
-       mkdir -p ${DEPLOY_DIR_IMAGE}
+fakeroot python do_rootfs () {
+    from oe.rootfs import create_rootfs
+    from oe.image import create_image
+    from oe.manifest import create_manifest
+
+    # generate the initial manifest
+    create_manifest(d)
+
+    # generate rootfs
+    create_rootfs(d)
+
+    # generate final images
+    create_image(d)
+}
+
+tisdk_image_setup () {
+    set -x
+    rm -rf ${IMAGE_ROOTFS}
+    mkdir -p ${IMAGE_ROOTFS}
+    mkdir -p ${DEPLOY_DIR_IMAGE}
 
-       mkdir -p ${IMAGE_ROOTFS}/etc
+    mkdir -p ${IMAGE_ROOTFS}/etc
+    mkdir -p ${IMAGE_ROOTFS}/var/lib/opkg
 
     chmod 755 ${DEPLOY_DIR}/sdk/${SDK_NAME}-${ARMPKGARCH}-${TARGET_OS}-tisdk*
 
     # Temporarily extract the toolchain sdk so we can read license information 
from it.
     echo "${IMAGE_ROOTFS}/${TISDK_TOOLCHAIN_PATH}" | 
${DEPLOY_DIR}/sdk/${SDK_NAME}-${ARMPKGARCH}-${TARGET_OS}-tisdk*
+}
 
-    # Creat the base SDK image
-       rootfs_${IMAGE_PKGTYPE}_do_rootfs
-
+tisdk_image_build () {
     mkdir -p ${IMAGE_ROOTFS}/filesystem
 
     # Copy the TARGET_IMAGES to the sdk image before packaging
@@ -607,23 +607,18 @@ do_sdk_image () {
 
     # Copy the opkg.conf used by the image to allow for future updates
     cp ${WORKDIR}/opkg.conf ${IMAGE_ROOTFS}/etc/
+}
 
+tisdk_image_cleanup () {
     # Move the var/etc directories which contains the opkg data used for the
     # manifest (and maybe one day for online updates) to a hidden directory.
     mv ${IMAGE_ROOTFS}/var ${IMAGE_ROOTFS}/.var
     mv ${IMAGE_ROOTFS}/etc ${IMAGE_ROOTFS}/.etc
-
-    # Create the image directory symlinks
-    # $ { @ get_imagecmds(d) }
 }
 
 license_create_manifest() {
     :
 }
 
-rootfs_install_complementary() {
-    :
-}
-
-EXPORT_FUNCTIONS do_sdk_image
-addtask sdk_image before do_build after do_install
+EXPORT_FUNCTIONS do_rootfs
+addtask rootfs before do_build after do_install
-- 
2.0.0

_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to