Patchwork [RFC] kernel bbclass: return to original directory in do_deploy

login
register
mail settings
Submitter chase maupin
Date March 7, 2013, 10:10 p.m.
Message ID <1362694248-15573-1-git-send-email-Chase.Maupin@ti.com>
Download mbox | patch
Permalink /patch/45679/
State Accepted
Commit fd5d80ab1a405cb4ef94f2cde25f8c251da490f0
Headers show

Comments

chase maupin - March 7, 2013, 10:10 p.m.
All,

The below patch is just one way to fix the issue of dtb files
not being copied into the deploy directory by the linux-dtb.inc
file.  The details below show why this failed.  The reason I am
marking this as an RFC is because I'm not sure this is the *best*
way to fix the issue.  What I'm concerned about is whether others
have already adapted their do_deploy_append functions to work
around the directory location that the script is in after running
the kernel_do_deploy step.  For example in the meta-ti layer
the multi-kernel.inc file first changes directory to ${S} in
the do_deploy_append function.

It seems likely that if anyone has adapted to this then they are
probably just doing a cd into ${S} but I wanted to get feedback
on whether to fix the generic kernel_do_deploy function or just
fix the do_deploy_append function in linux-dtb.inc.

* During the base kernel_do_deploy function the directory is
  changed to DEPLOYDIR in order to do some cleanup and symlinking.
  However, the directory is not changed back to the original
  starting directory ${S} at the end.  For append functions this
  means that the starting directory is not ${S} as expected but
  instead ${DEPLOYDIR}.

  For functions like the do_deploy_append in
  recipes-kernel/linux/linux-dtb.inc there is an assumption that
  you are still in the source directory and not the DEPLOYDIR.
  Without this change the .dtb files are not copied because the
  check for the existence of ${DTS_FILE} which is a relative
  path from the ${S} directory fails.  This means that the .dtb
  files are not copied into the deploy directory and subsequently
  the deploy/images directory.

  In the log.do_deploy file you will see lines like:

    Warning: arch/arm/boot/dts/xxxxx.dts is not available!

Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
---
 meta/classes/kernel.bbclass |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
chase maupin - March 11, 2013, 7:49 p.m.
> -----Original Message-----
> From: Maupin, Chase
> Sent: Thursday, March 07, 2013 4:11 PM
> To: openembedded-core@lists.openembedded.org
> Cc: Maupin, Chase
> Subject: [RFC] kernel bbclass: return to original directory in
> do_deploy

Just a quick ping on this.  Is anyone else seeing this issue?

> 
> All,
> 
> The below patch is just one way to fix the issue of dtb files
> not being copied into the deploy directory by the linux-dtb.inc
> file.  The details below show why this failed.  The reason I am
> marking this as an RFC is because I'm not sure this is the *best*
> way to fix the issue.  What I'm concerned about is whether others
> have already adapted their do_deploy_append functions to work
> around the directory location that the script is in after running
> the kernel_do_deploy step.  For example in the meta-ti layer
> the multi-kernel.inc file first changes directory to ${S} in
> the do_deploy_append function.
> 
> It seems likely that if anyone has adapted to this then they are
> probably just doing a cd into ${S} but I wanted to get feedback
> on whether to fix the generic kernel_do_deploy function or just
> fix the do_deploy_append function in linux-dtb.inc.
> 
> * During the base kernel_do_deploy function the directory is
>   changed to DEPLOYDIR in order to do some cleanup and
> symlinking.
>   However, the directory is not changed back to the original
>   starting directory ${S} at the end.  For append functions this
>   means that the starting directory is not ${S} as expected but
>   instead ${DEPLOYDIR}.
> 
>   For functions like the do_deploy_append in
>   recipes-kernel/linux/linux-dtb.inc there is an assumption that
>   you are still in the source directory and not the DEPLOYDIR.
>   Without this change the .dtb files are not copied because the
>   check for the existence of ${DTS_FILE} which is a relative
>   path from the ${S} directory fails.  This means that the .dtb
>   files are not copied into the deploy directory and subsequently
>   the deploy/images directory.
> 
>   In the log.do_deploy file you will see lines like:
> 
>     Warning: arch/arm/boot/dts/xxxxx.dts is not available!
> 
> Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
> ---
>  meta/classes/kernel.bbclass |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/meta/classes/kernel.bbclass
> b/meta/classes/kernel.bbclass
> index 0a0430e..d57d1f5 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -352,6 +352,7 @@ kernel_do_deploy() {
>  	ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGETYPE}
> 
>  	cp ${COREBASE}/meta/files/deploydir_readme.txt
> ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
> +	cd -
>  }
>  do_deploy[dirs] = "${DEPLOYDIR} ${B}"
> 
> --
> 1.7.0.4

Patch

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 0a0430e..d57d1f5 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -352,6 +352,7 @@  kernel_do_deploy() {
 	ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGETYPE}
 
 	cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
+	cd -
 }
 do_deploy[dirs] = "${DEPLOYDIR} ${B}"