Bug#1055437: gobject-introspection: Please provide a build profile to avoid build-dep loops through cairo

2023-11-06 Thread Simon McVittie
On Mon, 06 Nov 2023 at 03:01:30 +0100, Samuel Thibault wrote:
> gobject-introspection currently build-depends on cairo, but various
> build-dependencies of cairo build-depend on gobject-introspection

Which build-dependencies of cairo specifically? Are you referring to
poppler and rsvg, or are there others?

> It is however easy for gobject-introspection to break these loops by
> making the cairo build-dependency optional and make gir1.2-freedesktop
> not provide gir1.2-cairo-1.0.

That would be an "unsafe" build profile which would make an incompatible
change to the contents of gir1.2-freedesktop, and those are generally
discouraged. I'd prefer to break this cycle by having a smaller package
that cairo and its build-dependencies can depend on, which would not
contain Cairo-1.0.gir and therefore would not need to pull in
gir1.2-cairo-1.0 or gir1.2-freedesktop.

Also, because the gobject-introspection tools can't be run during
cross-compilation, I'm trying to work towards making it possible to
build packages in a build profile that drops GObject-Introspection
(see #1030223). If poppler and rsvg gain the ability to do that, then
I think building those packages with nogir would achieve what you want?

gobject-introspection 1.78.1-2 takes a step in that direction by making
dh_girepository generate gir:Depends and gir:Provides substvars for
GIR XML (*.gir), so that we can eventually split the GIR XML out of the
relevant -dev packages, making it possible to add a "nogir" build profile
without it being "unsafe".

smcv



Bug#1055437: gobject-introspection: Please provide a build profile to avoid build-dep loops through cairo

2023-11-05 Thread Samuel Thibault
Package: gobject-introspection
Version: 1.78.1-1
Severity: normal

Hello,

gobject-introspection currently build-depends on cairo, but various
build-dependencies of cairo build-depend on gobject-introspection, thus
creating various loops that makes bootstraping new Debian ports tricky.

It is however easy for gobject-introspection to break these loops by
making the cairo build-dependency optional and make gir1.2-freedesktop
not provide gir1.2-cairo-1.0.

Thanks,
Samuel

-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'stable-security'), (500, 'stable-debug'), (500, 
'oldstable-proposed-updates-debug'), (500, 'oldstable-proposed-updates'), (500, 
'oldoldstable-proposed-updates'), (500, 'oldoldstable'), (500, 
'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 
'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, arm64

Kernel: Linux 6.5.0-1-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages gobject-introspection depends on:
ii  build-essential 12.10
ii  libc6   2.37-12
ii  libdpkg-perl1.22.1
ii  libffi8 3.4.4-1
ii  libgirepository-1.0-1 [libgirepository-1.0-1-with-libffi8]  1.78.1-1
ii  libglib2.0-02.78.0-2
ii  python3 3.11.4-5+b1
ii  python3-distutils   3.11.5-1
ii  python3-mako1.2.4+ds-2
ii  python3-markdown3.4.4-1

gobject-introspection recommends no packages.

gobject-introspection suggests no packages.

-- no debconf information

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.