[OE-core] [PATCH] update_gio_module_cache: Do not chown a non-existing file
Peter Kjellerstedt
peter.kjellerstedt at axis.com
Thu Mar 30 10:53:37 UTC 2017
> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Alexander Kanavin
> Sent: den 30 mars 2017 11:39
> To: openembedded-core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH] update_gio_module_cache: Do not chown a
> non-existing file
>
> On 03/30/2017 02:16 AM, Peter Kjellerstedt wrote:
> > Only change the ownership of ${libdir}/gio/modules/giomodule.cache if
> > it exists.
> >
> > Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
> > ---
> > scripts/postinst-intercepts/update_gio_module_cache | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/scripts/postinst-intercepts/update_gio_module_cache
> b/scripts/postinst-intercepts/update_gio_module_cache
> > index 92092f2144..fc3f9d0d6c 100644
> > --- a/scripts/postinst-intercepts/update_gio_module_cache
> > +++ b/scripts/postinst-intercepts/update_gio_module_cache
> > @@ -3,7 +3,7 @@
> > set -e
> >
> > PSEUDO_UNLOAD=1 qemuwrapper -L $D -E
> LD_LIBRARY_PATH=$D${libdir}:$D${base_libdir} \
> > - $D${libexecdir}/${binprefix}gio-querymodules
> $D${libdir}/gio/modules/
> > -
> > -chown root:root $D${libdir}/gio/modules/giomodule.cache
> > + $D${libexecdir}/${binprefix}gio-querymodules
> $D${libdir}/gio/modules/
> >
> > +[ ! -e $D${libdir}/gio/modules/giomodule.cache ] ||
> > + chown root:root $D${libdir}/gio/modules/giomodule.cache
> >
>
> Nope. The postinst-intercept scirpts are allowed to fail, and if they
> are, they are deferred to first boot. If giomodule.cache file does not
> exist, that means that qemu does not work for the target machine, which
> is not a bug, and is handled by detecting script failure and taking the
> same action at first boot time - which your change breaks.
>
> Alex
No, the script will still fail if running gio-querymodules fails since
`set -e` is in effect. But it will no longer fail if gio-querymodules
succeeds without producing a cache file, which is the case for us.
I do not know under what circumstances gio-querymodules will or will
not produce a cache file, but I have tried running it on our target
and it does not produce a cache file there either, so I assume the
build time job is doing the right thing in not creating a file.
//Peter
More information about the Openembedded-core
mailing list