The intention of the change is to clean up unnecessary linking with
libffi and gmodule in g-i consumers as they typically don't use any
libffi/gmodule symbols.
Listing libffi and gmodule in pkg-config Requires meant that every
consumer that wanted to link with -lgirepository also got -lffi and
-lgmodule-2.0, which caused ld to emit unnecessary DT_NEEDED entries.
Moving the deps to Requires.private removes the internal dependencies
from 'pkg-config --libs', but keeps them in --libs --static output. The
change won't affect --cflags and the include directories necessary for
<ffi.h> will still be listed.
https://bugzilla.gnome.org/show_bug.cgi?id=674065
typelibdir=${libdir}/girepository-1.0
Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
-Requires: glib-2.0 gobject-2.0 gmodule-2.0 @FFI_PC_PACKAGES@
-Libs: -L${libdir} -lgirepository-1.0 @FFI_PC_LIBS@
+Requires: glib-2.0 gobject-2.0
+Requires.private: gmodule-2.0 @FFI_PC_PACKAGES@
+Libs: -L${libdir} -lgirepository-1.0
+Libs.private: @FFI_PC_LIBS@
Name: gobject-introspection
Description: GObject Introspection
typelibdir=${libdir}/girepository-1.0
Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
-Requires: glib-2.0 gobject-2.0 gmodule-no-export-2.0 @FFI_PC_PACKAGES@
-Libs: -L${libdir} -lgirepository-1.0 @FFI_PC_LIBS@
+Requires: glib-2.0 gobject-2.0
+Requires.private: gmodule-no-export-2.0 @FFI_PC_PACKAGES@
+Libs: -L${libdir} -lgirepository-1.0
+Libs.private: @FFI_PC_LIBS@
Name: gobject-introspection
Description: GObject Introspection