[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