From: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
To: Khem Raj <raj.khem@gmail.com>,
"openembedded-core@lists.openembedded.org"
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] glibc-locale: Rewrite do_install using install utility instead of cp
Date: Fri, 8 Feb 2019 08:44:21 +0000 [thread overview]
Message-ID: <2b5d0361200b48969cbbb269ca2272ee@XBOX04.axis.com> (raw)
In-Reply-To: <20190208005611.8039-1-raj.khem@gmail.com>
> -----Original Message-----
> From: openembedded-core-bounces@lists.openembedded.org <openembedded-
> core-bounces@lists.openembedded.org> On Behalf Of Khem Raj
> Sent: den 8 februari 2019 01:56
> To: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [PATCH] glibc-locale: Rewrite do_install using
> install utility instead of cp
>
> This has been a constant source of trouble for build failures due to
> host-user-contaminated QA errors of sort
>
> ERROR: QA Issue: glibc-locale: /glibc-binary-localedata-ca-
> es+valencia/usr/lib/locale/ca_ES@valencia/LC_MONETARY is owned by uid
> 3004, which is the same as the user running bitbake. This may be due to
> host contamination [host-user-contaminated]
>
> So far we have tried to mould cp command into not carrying the build
> user permissions into install area but it is never entirely fixed since
> the issue keeps popping up in various scenes
>
> This patch replaces use of cp with install utility and specifies install
> mode for files explcitly
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> meta/recipes-core/glibc/glibc-locale.inc | 41 ++++++++++++------------
> 1 file changed, 20 insertions(+), 21 deletions(-)
>
> diff --git a/meta/recipes-core/glibc/glibc-locale.inc b/meta/recipes-core/glibc/glibc-locale.inc
> index 6384f9cbf1..9cce61bf0b 100644
> --- a/meta/recipes-core/glibc/glibc-locale.inc
> +++ b/meta/recipes-core/glibc/glibc-locale.inc
> @@ -71,28 +71,27 @@ FILES_localedef = "${bindir}/localedef"
>
> LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale"
>
> -do_install () {
> - mkdir -p ${D}${bindir} ${D}${datadir}
> - if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then
> - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
> - fi
> - if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then
> - mkdir -p ${D}${localedir}
> - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${localedir}/* ${D}${localedir}
> - fi
> - if [ ${@d.getVar('PACKAGE_NO_GCONV')} -eq 0 ]; then
> - mkdir -p ${D}${libdir}
> - if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then
> - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
> - fi
> - if [ -e ${LOCALETREESRC}/${datadir}/i18n ]; then
> - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${datadir}/i18n ${D}${datadir}
> - fi
> - fi
> - if [ -e ${LOCALETREESRC}/${datadir}/locale ]; then
> - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${datadir}/locale ${D}${datadir}
> +copy_locale_files() {
> + local dir=$1 mode=$2
> +
> + [ -e "${LOCALETREESRC}$dir" ] || return 0
> +
> + for d in . $(find "${LOCALETREESRC}$dir" -type d -printf '%P '); do
> + install -d ${D}$dir/$d
> + find "${LOCALETREESRC}$dir/$d" -maxdepth 1 -type f \
> + -exec install -m $mode -t "${D}$dir/$d" {} \;
I know I am a sucker for details, but please align the broken find line so
that it is more obvious that the second line is a continuation, i.e.:
find "${LOCALETREESRC}$dir/$d" -maxdepth 1 -type f \
-exec install -m $mode -t "${D}$dir/$d" {} \;
> + done
> +}
> +
> +do_install() {
> + copy_locale_files ${bindir} 0755
> + copy_locale_files ${localedir} 0644
> + if [ ${PACKAGE_NO_GCONV} -eq 0 ]; then
> + copy_locale_files ${libdir}/gconv 0755
> + copy_locale_files ${datadir}/i18n 0644
> fi
> - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/SUPPORTED ${WORKDIR}
> + copy_locale_files ${datadir}/locale 0644
> + install -m 0644 ${LOCALETREESRC}/SUPPORTED ${WORKDIR}/SUPPORTED
> }
>
> inherit libc-package
> --
> 2.20.1
//Peter
next prev parent reply other threads:[~2019-02-08 8:44 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-08 0:56 [PATCH] glibc-locale: Rewrite do_install using install utility instead of cp Khem Raj
2019-02-08 8:44 ` Peter Kjellerstedt [this message]
2019-02-08 15:21 ` Khem Raj
2019-02-10 0:34 ` Peter Kjellerstedt
-- strict thread matches above, loose matches on Subject: below --
2019-02-07 0:35 Khem Raj
2019-02-07 9:00 ` Richard Purdie
2019-02-07 14:49 ` Khem Raj
2019-02-07 16:17 ` Martin Jansa
2019-02-07 16:44 ` Joshua Watt
2019-02-07 16:59 ` Joshua Watt
2019-02-07 17:11 ` Martin Jansa
2019-02-07 17:21 ` Richard Purdie
2019-02-07 19:34 ` Joshua Watt
2019-02-10 1:29 ` Peter Kjellerstedt
2019-02-10 6:25 ` Peter Kjellerstedt
2019-02-10 23:32 ` Peter Kjellerstedt
2019-02-11 2:09 ` Khem Raj
2019-02-13 17:42 ` Khem Raj
2019-02-07 11:44 ` Peter Kjellerstedt
2019-02-07 14:53 ` Khem Raj
2019-02-28 1:53 ` ChenQi
2019-02-28 15:21 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2b5d0361200b48969cbbb269ca2272ee@XBOX04.axis.com \
--to=peter.kjellerstedt@axis.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=raj.khem@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox