On Wed, 17 Jan 2024 at 23:15:03 +0100, Matthias Geiger wrote:
Am 17.01.24 um 23:00 schrieb Simon McVittie:
> Public GIR XML (Foo-1.gir) is normally in the -dev package alongside the
> C headers, but recent versions of gobject-introspection define a canonical
> virtual package name gir1.2-foo-1-dev which can either be a Provides on
> the -dev package or an independent binary package.
Does this mean we should should split out the .gir XML files from
existing
source packages into a separate gir1.2-foo-dev (in the long run) ?
That's a good question, and I don't have an easy answer for it. The
tradeoff is:
- having the GIR XML in libfoo-dev means fewer binary packages and
therefore smaller Packages metadata;
- having a separate (non-virtual) gir1.2-foo-1-dev means we can
"cleanly"
turn off GIR/typelibs in cases when they're not needed, and means
libfoo-dev is a bit smaller and with fewer dependencies
Why?
gobject-introspection is one of the few and high popcon components that
poses resistant to cross compilation. gir packages are often added to
existing source packages for e.g. libraries and their presence makes
cross building fail. Often enough, these gir packages are not needed
for
a particular application, so skipping them would allow cross building
the library. The profile also allows fixing cross build problems in
packages shipping typelib files such that when we get a solution for
typelib generation, those packages will not have other bugs.