All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tisdk-image.bbclass: update for the new rootfs/image infrastructure
@ 2014-07-01 19:19 Denys Dmytriyenko
  2014-07-01 21:10 ` Cooper Jr., Franklin
  0 siblings, 1 reply; 7+ messages in thread
From: Denys Dmytriyenko @ 2014-07-01 19:19 UTC (permalink / raw)
  To: meta-arago

From: Denys Dmytriyenko <denys@ti.com>

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 <denys@ti.com>
---
 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



^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-07-02 13:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-01 19:19 [PATCH] tisdk-image.bbclass: update for the new rootfs/image infrastructure Denys Dmytriyenko
2014-07-01 21:10 ` Cooper Jr., Franklin
2014-07-02 13:00   ` Maupin, Chase
2014-07-02 13:27     ` Denys Dmytriyenko
2014-07-02 13:44       ` Maupin, Chase
2014-07-02 13:53         ` Denys Dmytriyenko
2014-07-02 13:55           ` Maupin, Chase

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.