Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
To: Khem Raj <raj.khem@gmail.com>
Cc: "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: Sun, 10 Feb 2019 00:34:27 +0000	[thread overview]
Message-ID: <fee2404e2b1647a389091ae2b7de3fb3@XBOX04.axis.com> (raw)
In-Reply-To: <CAMKF1sr-s=7m1-0kajeNYesLZ9qpmHhNu7mS1-bEfjunvfPigQ@mail.gmail.com>

> -----Original Message-----
> From: Khem Raj <raj.khem@gmail.com>
> Sent: den 8 februari 2019 16:21
> To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> Cc: openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH] glibc-locale: Rewrite do_install using
> install utility instead of cp
> 
> On Fri, Feb 8, 2019 at 12:44 AM Peter Kjellerstedt
> <peter.kjellerstedt@axis.com> wrote:
> >
> > > -----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" {} \;
> >
> 
> You are doing good here, I really appreciate the feedback. Do you
> think aligning it
> under beginning of quote is more readable or aligning where find cmd
> begins is better ?
> I will make this as a followup patch and send it with next lot of
> minor changes that I have in
> queue.

The patch, as it was integrated to master, is fine.

> > > +     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
> >

//Peter


  reply	other threads:[~2019-02-10  0:34 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
2019-02-08 15:21   ` Khem Raj
2019-02-10  0:34     ` Peter Kjellerstedt [this message]
  -- 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=fee2404e2b1647a389091ae2b7de3fb3@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