Patchwork image.bbclass: ensure makedevs does return true

login
register
mail settings
Submitter Saul Wold
Date Oct. 1, 2013, 3:40 p.m.
Message ID <1380642011-14346-1-git-send-email-sgw@linux.intel.com>
Download mbox | patch
Permalink /patch/59163/
State New
Headers show

Comments

Saul Wold - Oct. 1, 2013, 3:40 p.m.
When doing an incremental image generation, ensure that makedevs returns true when it encounters
a node that already exists, otherwise image generation will fail.

[YOCTO #5288]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/classes/image.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Mark Hatle - Oct. 1, 2013, 3:52 p.m.
On 10/1/13 10:40 AM, Saul Wold wrote:
> When doing an incremental image generation, ensure that makedevs returns true when it encounters
> a node that already exists, otherwise image generation will fail.
>
> [YOCTO #5288]
>
> Signed-off-by: Saul Wold <sgw@linux.intel.com>
> ---
>   meta/classes/image.bbclass | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index 7650594..463fa71 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -337,7 +337,7 @@ fakeroot do_rootfs () {
>   		for devtable in ${@get_devtable_list(d)}; do
>   			# Always return ture since there maybe already one when use the
>   			# incremental image generation
> -			makedevs -r ${IMAGE_ROOTFS} -D $devtable
> +			makedevs -r ${IMAGE_ROOTFS} -D $devtable || true

I'm a little worried about this patch.  There is a known case where makedevs 
will fail with a message indicating it can't do the name -> uid/gid 
translations.  In this case it just stops, and the nodes are never generated.

The underlying cause is that the passwd/group files never got installed onto the 
target.  Adding a specific check for this might be a good idea, but doing the || 
true will cause errors like that to be masked.

Perhaps finding a way to patch makedevs to no error when a node already exists?

--Mark

>   		done
>   	fi
>
>

Patch

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 7650594..463fa71 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -337,7 +337,7 @@  fakeroot do_rootfs () {
 		for devtable in ${@get_devtable_list(d)}; do
 			# Always return ture since there maybe already one when use the
 			# incremental image generation
-			makedevs -r ${IMAGE_ROOTFS} -D $devtable
+			makedevs -r ${IMAGE_ROOTFS} -D $devtable || true
 		done
 	fi