[OE-core] [PATCH 2/3] libc-package.bbclass: Use install utility to create directories with right permissions

Peter Kjellerstedt peter.kjellerstedt at axis.com
Thu Feb 14 06:05:38 UTC 2019

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org <openembedded-
> core-bounces at lists.openembedded.org> On Behalf Of Khem Raj
> Sent: den 12 februari 2019 06:48
> To: openembedded-core at lists.openembedded.org
> Subject: [OE-core] [PATCH 2/3] libc-package.bbclass: Use install
> utility to create directories with right permissions
> Could fix issues where dirs with wrong permission is created with mkdir -p
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>  meta/classes/libc-package.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-
> package.bbclass
> index 0b4c666a74..34025635ce 100644
> --- a/meta/classes/libc-package.bbclass
> +++ b/meta/classes/libc-package.bbclass
> @@ -61,7 +61,7 @@ LOCALETREESRC ?= "${PKGD}"
>  do_prep_locale_tree() {
>  	treedir=${WORKDIR}/locale-tree
>  	rm -rf $treedir
> -	mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${localedir}
> +	install -d $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${localedir}

This does not change anything (install -d and mkdir -p does the same thing). 

>  	tar -cf - -C ${LOCALETREESRC}${datadir} -p i18n | tar -xf - -C $treedir/${datadir}
>  	# unzip to avoid parsing errors
>  	for i in $treedir/${datadir}/i18n/charmaps/*gz; do
>		gunzip $i
>	done
>	tar -cf - -C ${LOCALETREESRC}${base_libdir} -p . | tar -xf - -C $treedir/${base_libdir}

This is where the problem happens. When the files are copied from 
${LOCALETREESRC}, the ownership of $treedir${localedir} is changed to that 
of ${LOCALETREESRC}${localedir}. However, I now realized that the problem 
may be due to the fact that I have usrmerge enabled in DISTRO_FEATURES, 
which causes the above line to copy things it was never meant to copy, in 
this case ${LOCALETREESRC}${localedir}. I tried to just remove the line 
altogether and then it built just fine. But I do not know what the 
consequences are of removing it... I guess it is related to setting up an 
environment for qemu to run in, but since that seems to work fine without 
the files copied by the above line, maybe it is not needed? Or maybe it 
is just not needed when having usrmerge in DISTRO_FEATURES? I tried to 
backtrack it through the commit logs, but it was introduced with the 
do_prep_locale_tree() function, so no help there.

> --
> 2.20.1


More information about the Openembedded-core mailing list