Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ffi errors building gobject-introspection



On Thu, Mar 23, 2023 at 10:02 PM Riccardo Mottola
<riccardo.mottola%libero.it@localhost> wrote:
>
> Hi,
>
> Connor McLaughlan wrote:
> > I had a similar problem when trying to downgrade libffi from so.8 to
> > so.7 for testing.
> >
> > I had to rebuild all dependencies after the libffi change beginning
> > with i think devel/glib2.
> >
> > Backward dependencies can be found via pkgsrc.se:
> > https://pkgsrc.se/devel/gobject-introspection
> >
> > As for forward dependencies of libffi i don't know how to get this
> > information or if there is a convenient way.
> >
> > Is there pkgsrc supported way to rebuild all depending packages
> > automatically? And preferably not the whole pkgsrc tree that is not
> > involved?
>
>
> I don't know if I have a dependency issue, or a package linking issue.
> Here my reasoning.
> As Greg supposed, I have libffi.8 already:
>
> /usr/pkg/lib/libffi.so.8
>
> glib2 doesn't have any dependencies on it, however linking fails at this
> incriminate file:
> ld: warning: libffi.so.7, needed by /usr/pkg/lib/libgirepository-1.0.so.1
>
> /usr/pkg/lib/libgirepository-1.0.so:
>         -lglib-2.0.0 => /usr/pkg/lib/libglib-2.0.so.0
>         -lpcre2-8.0 => /usr/pkg/lib/libpcre2-8.so.0
>         -lc.12 => /usr/lib/libc.so.12
>         -lintl.1 => /usr/lib/libintl.so.1
>         -lgcc_s.1 => /usr/lib/libgcc_s.so.1
>         -lpthread.1 => /usr/lib/libpthread.so.1
>         -lgobject-2.0.0 => /usr/pkg/lib/libgobject-2.0.so.0
>         -lffi.8 => /usr/pkg/lib/libffi.so.8
>         -lgmodule-2.0.0 => /usr/pkg/lib/libgmodule-2.0.so.0
>         -lgio-2.0.0 => /usr/pkg/lib/libgio-2.0.so.0
>         -lz.1 => /usr/pkg/lib/libz.so.1
>         -lffi.7 => not found
>         -lm.0 => /usr/lib/libm.so.0
>
> wow, it tries to link in two libffi versions?
> And where does this package come from?
>
> $ pkg_info -Fe /usr/pkg/lib/libgirepository-1.0.so
> gobject-introspection-1.68.0
>
> $ ls -l /usr/pkg/lib/libgirepository-1.0.so
> lrwxr-xr-x  1 root  wheel  24 Oct 18  2021
> /usr/pkg/lib/libgirepository-1.0.so -> libgirepository-1.0.so.1
>
> so this is an old file.
>
> but gobject-introspection is really the package I am upgrading! Doe sit
> look as the package while uprading looks into its own installed version?
> I think it should use this:
> $ find . -name libgirepository-1.0.so
> ./gobject-introspection-1.74.0/output/girepository/libgirepository-1.0.so
> inside the workdir. Which, after a quick check is correctly linked to
> libffi.8 as expected.
>
> Riccardo


You might want to recheck devel/glib2 for dependencies:
.include "../../devel/libffi/buildlink3.mk"

And you will find a link to ffi when you do:
ldd /usr/pkg/lib/libgobject-2.0.so
which is a file of devel/glib2

I suppose yours links to -lffi.7, while mine links to -lffi.8

So you carefully have to get all dependencies where ffi.7 is still
linked and rebuild them.
For gobject-introspection this involves at least:

Required to run:
[textproc/py-expat] [devel/glib2] [devel/libffi]
[textproc/py-cElementTree] [lang/python37]
Required to build:
[pkgtools/cwrappers] [devel/meson]

And those in turn need to be built in the right depending order.

Regards,
Connor


Home | Main Index | Thread Index | Old Index