[Buildroot] [PATCH 1/1] package/libglib2: remove bindir prefix from gio-2.0.pc

Carlos Santos unixmania at gmail.com
Thu Jun 13 02:50:29 UTC 2019


On Tue, Jun 11, 2019 at 4:22 PM Yann E. MORIN <yann.morin.1998 at free.fr> wrote:
>
> Adam, All,
>
> On 2019-06-11 14:19 -0400, Adam Duskett spake thusly:
> > Openembedded has a patch for this that might be even better for us to use:
> > https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
>
> As discussed on IRC (Fabrice, you should *really* join):
>
> Upstream glib refused that patch, because they do want to have the
> paths.
>
> So it has zero chance to be applied, so we'll have to carry it over and
> over.
>
> So, I prefer we go with the hook. Still, see comments below...
>
> > If not, then consider this an
> > Acked-by: Adam Duskett <aduskett at gmail.com>
> >
> > On Tue, Jun 11, 2019 at 1:30 PM Fabrice Fontaine
> > <fontaine.fabrice at gmail.com> wrote:
> > >
> > > Apply LIBGLIB2_REMOVE_BINDIR_PREFIX_FROM_PC_FILE to gio-2.0.pc so
> > > ${bindir} prefix is also removed for gbus-codegen otherwise build of
> > > packages using this binary will fail if gbus-codegen is not installed on
> > > host
> > >
> > > Fixes:
> > >  - http://autobuild.buildroot.org/results/5c0e4f3d33e01198688d58388aabe159bd005234
> > >
> > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> > > ---
> > >  package/libglib2/libglib2.mk | 16 ++++++++++------
> > >  1 file changed, 10 insertions(+), 6 deletions(-)
> > >
> > > diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
> > > index 78d6e5ab32..c8db706684 100644
> > > --- a/package/libglib2/libglib2.mk
> > > +++ b/package/libglib2/libglib2.mk
> > > @@ -85,13 +85,17 @@ endef
> > >
> > >  LIBGLIB2_POST_INSTALL_TARGET_HOOKS += LIBGLIB2_REMOVE_DEV_FILES
> > >
> > > -# Newer versions of libglib2 prefix glib-genmarshal, gobject-query, and
> > > -# glib-mkenums with ${bindir}. Unfortunately, this will resolve to the host
> > > -# systems /bin/ directory, which will cause compilation issues if the host does
> > > -# not have these programs. By removing the ${bindir}/ prefix, these programs
> > > -# are resolved in PATH instead.
> > > +# Newer versions of libglib2 prefix glib-genmarshal, gobject-query,
> > > +# glib-mkenums, glib_compile_schemas, glib_compile_resources and gdbus-codegen
> > > +# with ${bindir}. Unfortunately, this will resolve to the host systems /bin/
> > > +# directory, which will cause compilation issues if the host does not have these
> > > +# programs. By removing the ${bindir}/ prefix, these programs are resolved in
> > > +# PATH instead.
> > >  define LIBGLIB2_REMOVE_BINDIR_PREFIX_FROM_PC_FILE
> > > -       $(SED) 's%$${bindir}/%%g' $(STAGING_DIR)/usr/lib/pkgconfig/glib-2.0.pc
> > > +       for file in glib-2.0.pc gio-2.0.pc ; do \
> > > +               $(SED) 's%$${bindir}/%%g' \
> > > +                       $(STAGING_DIR)/usr/lib/pkgconfig/$$file ; \
>
> IF the sed fails (for whatever reason), you'll miss the error, so...
>
> > > +       done
>
> ... prefer using $(foreach ...) instead of a shell loop.

Or simply

define LIBGLIB2_REMOVE_BINDIR_PREFIX_FROM_PC_FILE
        $(SED) 's%$${bindir}/%%g' \
                $(STAGING_DIR)/usr/lib/pkgconfig/glib-2.0.pc \
                $(STAGING_DIR)/usr/lib/pkgconfig/gio-2.0.pc
endef

-- 
Carlos Santos <unixmania at gmail.com>


More information about the buildroot mailing list