> -----Original Message-----
> From: openembedded-core-boun...@lists.openembedded.org <openembedded-
> core-boun...@lists.openembedded.org> On Behalf Of Jiang Lu
> Sent: den 20 mars 2019 10:39
> To: lu.ji...@windriver.com; openembedded-core@lists.openembedded.org;
> richard.pur...@linuxfoundation.org
> Subject: [OE-core] [PATCH 4/4] relocatable: add file existence checking
> in relocatable_native_pcfiles
> 
> Some package may create a ${libdir}/pkgconfig directory in its sysroot
> without .pc file. It leads following error:
> sed: can't read ${sysroot}/${libdir}/pkgconfig/*.pc: No such file or
> directory
> 
> To avoid this, add a file existence checking in
> relocatable_native_pcfiles()
> before sed.
> 
> Signed-off-by: Jiang Lu <lu.ji...@windriver.com>
> ---
>  meta/classes/relocatable.bbclass | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/relocatable.bbclass
> b/meta/classes/relocatable.bbclass
> index 582812c1cf..eb9989d18c 100644
> --- a/meta/classes/relocatable.bbclass
> +++ b/meta/classes/relocatable.bbclass
> @@ -7,11 +7,13 @@ python relocatable_binaries_preprocess() {
>  }
> 
>  relocatable_native_pcfiles () {
> -     if [ -d ${SYSROOT_DESTDIR}${libdir}/pkgconfig ]; then
> +     filecnt=`ls -l ${SYSROOT_DESTDIR}${libdir}/pkgconfig/*.pc 2>/dev/null | 
> wc -l`
> +     if [ $filecnt -gt 0 ]; then
>               rel=${@os.path.relpath(d.getVar('base_prefix'), 
> d.getVar('libdir') + "/pkgconfig")}
>               sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" 
> ${SYSROOT_DESTDIR}${libdir}/pkgconfig/*.pc
>       fi
> -     if [ -d ${SYSROOT_DESTDIR}${datadir}/pkgconfig ]; then
> +     filecnt=`ls -l ${SYSROOT_DESTDIR}${datadir}/pkgconfig/*.pc 2>/dev/null 
> | wc -l`
> +     if [ $filecnt -gt 0 ]; then
>               rel=${@os.path.relpath(d.getVar('base_prefix'), 
> d.getVar('datadir') + "/pkgconfig")}
>               sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" 
> ${SYSROOT_DESTDIR}${datadir}/pkgconfig/*.pc
>       fi
> --
> 2.17.1

May I suggest the following instead:

relocatable_native_pcfiles () {
        files=$(find ${SYSROOT_DESTDIR}${libdir}/pkgconfig -name '*.pc' 
2>/dev/null)
        if [ "$files" ]; then
                rel=${@os.path.relpath(d.getVar('base_prefix'), 
d.getVar('libdir') + "/pkgconfig")}
                sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" $files
        fi
        files=$(find ${SYSROOT_DESTDIR}${datadir}/pkgconfig -name '*.pc' 
2>/dev/null)
        if [ "$files" ]; then
                rel=${@os.path.relpath(d.getVar('base_prefix'), 
d.getVar('datadir') + "/pkgconfig")}
                sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" $files
        fi
}

//Peter

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to