Re: ffi errors building gobject-introspection
Connor McLaughlan <[email protected]> Fri, 24 Mar 2023 00:19:09 +0100
| Newsgroups | gmane.os.netbsd.ports.sparc64 |
|---|---|
| Message-ID | <CABo1Du6bQt6UuQtuebBKsjOQXaUgbzxxRKvgV9U6MdLiS=Rc5g@mail.gmail.com> |
On Thu, Mar 23, 2023 at 10:02 PM Riccardo Mottola <[email protected]> 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