Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 937616 - dev-libs/glib-2.80.4: circular dep issues
Summary: dev-libs/glib-2.80.4: circular dep issues
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Linux Gnome Desktop Team
URL: https://discourse.gnome.org/t/dealing...
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2024-08-09 10:34 UTC by Sam James
Modified: 2024-09-26 03:54 UTC (History)
22 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
meson configure log (meson-log.txt,376.43 KB, text/plain)
2024-08-09 11:21 UTC, Nowa Ammerlaan
Details
gobject-introspection ebuild without glib dependency (gobject-introspection-1.80.1-r3.ebuild,2.59 KB, application/vnd.gentoo.ebuild)
2024-09-15 00:44 UTC, Blake Batson
Details
glib ebuild with some hacks for introspection (glib-2.80.4-r1.ebuild,11.56 KB, application/vnd.gentoo.ebuild)
2024-09-15 00:45 UTC, Blake Batson
Details
merged glib + gobject-introspection ebuild (glib-2.82.0.ebuild,14.22 KB, application/vnd.gentoo.ebuild)
2024-09-18 23:21 UTC, Blake Batson
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-09 10:34:08 UTC
I see that glib-2.80.x has landed:

commit b0cdd4865b65ff4759b8ad273871442b67f2b95f
Author: Guillermo Joandet <gjoandet@gmail.com>
Date:   Fri May 10 10:12:54 2024 -0300

    dev-libs/glib: Bump to 2.80.4

    Signed-off-by: Guillermo Joandet <gjoandet@gmail.com>
    Signed-off-by: Pacho Ramos <pacho@gentoo.org>

commit 87757767aae114d32059400fd72d1a59656f8382
Author: Guillermo Joandet <gjoandet@gmail.com>
Date:   Wed Jan 17 22:35:13 2024 -0300

    dev-libs/gobject-introspection: Bump to 1.80.1

    Signed-off-by: Guillermo Joandet <gjoandet@gmail.com>
    Signed-off-by: Pacho Ramos <pacho@gentoo.org>

AFAIK, from discussions on IRC a while ago, we were avoiding doing this for now until we'd figured out the circular dep problems. The commit message doesn't discuss the issue or how it's been worked around/solved.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-09 10:39:01 UTC
I see leio mentions it at https://github.com/gentoo/gentoo/pull/36834#issuecomment-2241515970.

In general, Guillermo (and Pacho), please do write verbose commit messages, it helps a lot.
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-09 10:42:54 UTC
And indeed just hit it on world upgrade:
```
[nomerge       ] app-emacs/pinentry-0.1_p20231126::gentoo
[nomerge       ]  app-crypt/pinentry-1.3.1::gentoo  USE="X caps emacs gtk ncurses qt5 qt6 verify-sig wayland -efl -keyring"
[nomerge       ]   app-crypt/gcr-4.2.1:4/gcr-4.4-gck-2.2::gentoo  USE="gtk introspection systemd vala -gtk-doc -test"
[nomerge       ]    app-crypt/libsecret-0.21.1::gentoo  USE="crypt introspection (test-rust) vala -gtk-doc -test -tpm" ABI_X86="(64) -32 (-x32)"
[ebuild     U  ]     dev-libs/gobject-introspection-1.80.1::gentoo [1.78.1::gentoo] USE="-doctool -gtk-doc -test" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13" 1,016 KiB
[ebuild     U  ]      dev-libs/glib-2.80.4:2::gentoo [2.78.6:2::gentoo] USE="dbus elf introspection%* (mime) test xattr -debug -doc% (-selinux) -static-libs -sysprof -systemtap -utils (-gtk-doc%)" ABI_X86="(64) -32 (-x32)" 5,407 KiB

Total: 2 packages (2 upgrades), Size of downloads: 6,422 KiB

 * Error: circular dependencies:

(dev-libs/gobject-introspection-1.80.1:0/0::gentoo, ebuild scheduled for merge) depends on
 (dev-libs/glib-2.80.4:2/2::gentoo, ebuild scheduled for merge) (buildtime)
  (dev-libs/gobject-introspection-1.80.1:0/0::gentoo, ebuild scheduled for merge) (buildtime)

It might be possible to break this cycle
by applying the following change:
- dev-libs/glib-2.80.4 (Change USE: -introspection)
```

I really think we should try figure *something* out to avoid every single user having to manually work around this. But it is a shame that meson subprojects can't be used here (https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/380#note_2089298).
Comment 3 Albert W. Hopkins 2024-08-09 11:01:37 UTC
I tried USE-introspection to avoid the circular dependencies, but portages fails with

```
USE=-introspection emerge -1v --color=n =dev-libs/glib-2.80.4'

Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies  ... done!
Dependency resolution took 1.39 s (backtrack: 0/20).

[ebuild     U  ] dev-libs/glib-2.80.4:2::gentoo [2.78.6:2::gentoo] USE="dbus elf (mime) static-libs sysprof xattr -debug -doc% -introspection% (-selinux) -systemtap -test -utils (-gtk-doc%)" ABI_X86="(64) -32 (-x32)" 5407 KiB
[uninstall     ] dev-util/gdbus-codegen-2.78.6::gentoo  PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11" 
[blocks b      ] <dev-util/gdbus-codegen-2.80.4 ("<dev-util/gdbus-codegen-2.80.4" is soft blocking dev-libs/glib-2.80.4)
[blocks B      ] <dev-libs/gobject-introspection-1.80.1 ("<dev-libs/gobject-introspection-1.80.1" is soft blocking dev-libs/glib-2.80.4)

Total: 1 package (1 upgrade, 1 uninstall), Size of downloads: 5407 KiB
Conflict: 2 blocks (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (dev-libs/gobject-introspection-1.78.1-2:0/0::gentoo, installed) pulled in by
    >=dev-libs/gobject-introspection-1.54:0/0= required by (gnome-base/gnome-desktop-44.0-r400-1:4/2::gentoo, installed) USE="(seccomp) systemd udev -debug -gtk-doc" ABI_X86="(64)"
    >=dev-libs/gobject-introspection-1.56:0/0= required by (x11-libs/vte-0.74.2-2:2.91/2.91::gentoo, installed) USE="crypt icu introspection systemd vala -debug -gtk-doc -vanilla" ABI_X86="(64)"
    >=dev-libs/gobject-introspection-1.54:0/0= required by (gnome-extra/sushi-45.0-1:0/0::gentoo, installed) USE="X wayland" ABI_X86="(64)"
    >=dev-libs/gobject-introspection-1:= required by (app-text/evince-46.3-1:0/evd3.4-evv3.3::gentoo, installed) USE="gnome gstreamer introspection keyring spell tiff -cups -djvu -dvi -gtk-doc (-nautilus) -postscript -xps" ABI_X86="(64)"
    >=dev-libs/gobject-introspection-1.30:= required by (sys-fs/udisks-2.10.1-3:2/2::gentoo, installed) USE="acl daemon introspection nls systemd -debug (-elogind) -lvm (-selinux)" ABI_X86="(64)"
    >=dev-libs/gobject-introspection-1.71.1:= required by (dev-libs/gjs-1.78.5-1:0/0::gentoo, installed) USE="cairo readline sysprof -examples -test" ABI_X86="(64)"

... and on and on and on
```
Comment 4 Nowa Ammerlaan gentoo-dev 2024-08-09 11:20:54 UTC
(In reply to Albert W. Hopkins from comment #3)
> I tried USE-introspection to avoid the circular dependencies, but portages
> fails with
> 
> ```
> USE=-introspection emerge -1v --color=n =dev-libs/glib-2.80.4'
> 

Disabling USE introspection *only* for glib via package.use and then doing a full world upgrade (not emerge glib, that gives me the same conflict) resolved that problem on my end.

But then after the world upgrade has completed, re-enabling USE introspection results in:

Found CMake: /usr/bin/cmake (3.30.2)
Run-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and cmake)

../glib-2.80.4/girepository/introspection/meson.build:53:17: ERROR: Dependency "gobject-introspection-1.0" not found, tried pkgconfig and cmake

Which is strange because '/usr/lib64/pkgconfig/gobject-introspection-1.0.pc' exists.
Comment 5 Nowa Ammerlaan gentoo-dev 2024-08-09 11:21:30 UTC
Created attachment 899672 [details]
meson configure log
Comment 6 Pacho Ramos gentoo-dev 2024-08-09 11:45:46 UTC
(In reply to Sam James from comment #1)
> In general, Guillermo (and Pacho), please do write verbose commit messages,
> it helps a lot.

OK thanks

I thought it was enough with the long discussion in the referred PR
Comment 7 Pacho Ramos gentoo-dev 2024-08-09 11:50:15 UTC
(In reply to Sam James from comment #2)
[...] 
> I really think we should try figure *something* out to avoid every single
> user having to manually work around this. But it is a shame that meson
> subprojects can't be used here
> (https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/
> 380#note_2089298).

I already reviewed that and also found that reference but, at the end, it seems that there is no other solution than emerging newer glib without introspection, build newer instrospection and rebuild glib. It is what all the other distributions ended up doing and, looking to upstream, it seems nothing better will come for months (or years)
Comment 8 Pacho Ramos gentoo-dev 2024-08-09 11:54:35 UTC
I am going to mask it in few mins (I am dealing with other reverse deps too)
Comment 9 Nowa Ammerlaan gentoo-dev 2024-08-09 11:58:41 UTC
(In reply to Andrew Nowa Ammerlaan from comment #4)
> But then after the world upgrade has completed, re-enabling USE
> introspection results in:
> 
> Found CMake: /usr/bin/cmake (3.30.2)
> Run-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and
> cmake)
> 
> ../glib-2.80.4/girepository/introspection/meson.build:53:17: ERROR:
> Dependency "gobject-introspection-1.0" not found, tried pkgconfig and cmake
> 
> Which is strange because '/usr/lib64/pkgconfig/gobject-introspection-1.0.pc'
> exists.

This resolves my problem:
diff --git a/dev-libs/glib/glib-2.80.4.ebuild b/dev-libs/glib/glib-2.80.4.ebuild
index e61ebbcbfe68..1a20959666c2 100644
--- a/dev-libs/glib/glib-2.80.4.ebuild
+++ b/dev-libs/glib/glib-2.80.4.ebuild
@@ -203,7 +203,7 @@ multilib_src_configure() {
-Doss_fuzz=disabled
$(meson_native_use_feature elf libelf)
-Dmultiarch=false
-               $(meson_feature introspection)
+               $(meson_native_use_feature introspection)
)
meson_src_configure
}
Comment 10 Larry the Git Cow gentoo-dev 2024-08-09 12:04:43 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a11a4800db7175e4376154797b25238c91dd29c

commit 5a11a4800db7175e4376154797b25238c91dd29c
Author:     Pacho Ramos <pacho@gentoo.org>
AuthorDate: 2024-08-09 11:55:10 +0000
Commit:     Pacho Ramos <pacho@gentoo.org>
CommitDate: 2024-08-09 12:04:10 +0000

    profiles: mask glib-2.80 and co. due to issues when updating
    
    Bug: https://bugs.gentoo.org/937616
    Signed-off-by: Pacho Ramos <pacho@gentoo.org>

 profiles/package.mask | 8 ++++++++
 1 file changed, 8 insertions(+)
Comment 11 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-09 12:19:20 UTC
(In reply to Pacho Ramos from comment #6)
> I thought it was enough with the long discussion in the referred PR

The thing is GH might disappear at some point, but git is forever, it's also easier to search and so on.
Comment 12 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-09 12:20:17 UTC
(In reply to Pacho Ramos from comment #7)

Yeah, I appreciate this is pretty hard.

The problem is, other distros can solve it _once_ on their builder, job done. They don't have the same problem we do.

What I'm wondering if we can do is build glib-introspection once within the glib ebuild. I mentioned that to leio ages ago and IIRC it looked infeasible but I don't remember why yet.
Comment 13 Mart Raudsepp gentoo-dev 2024-08-09 12:27:29 UTC
Another core issue is that the whole tree assumes a gobject-introspection dep provides glib GIR, which it now doesn't. And making gobject-introspection have a long-term transitional dep on glib[introspection] to ensure it's there, ends up in circular issues. Maybe a PDEPEND, but then that doesn't ensure wrong order upgrades won't be broken afaik.
Comment 14 Larry the Git Cow gentoo-dev 2024-08-09 12:47:28 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b816f464caf6e4217266aeef09e44163c5967d9e

commit b816f464caf6e4217266aeef09e44163c5967d9e
Author:     Pacho Ramos <pacho@gentoo.org>
AuthorDate: 2024-08-09 12:46:15 +0000
Commit:     Pacho Ramos <pacho@gentoo.org>
CommitDate: 2024-08-09 12:46:15 +0000

    dev-libs/glib: instrospection support is not meant to be used in multilib
    
    Thanks-to: Andrew Nowa Ammerlaan
    Bug: https://bugs.gentoo.org/937616
    Signed-off-by: Pacho Ramos <pacho@gentoo.org>

 dev-libs/glib/glib-2.80.4.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 15 Alex Xu (Hello71) 2024-08-09 13:19:08 UTC
(In reply to Larry the Git Cow from comment #10)
> The bug has been referenced in the following commit(s):
> 
> https://gitweb.gentoo.org/repo/gentoo.git/commit/
> ?id=5a11a4800db7175e4376154797b25238c91dd29c
> 
> commit 5a11a4800db7175e4376154797b25238c91dd29c
> Author:     Pacho Ramos <pacho@gentoo.org>
> AuthorDate: 2024-08-09 11:55:10 +0000
> Commit:     Pacho Ramos <pacho@gentoo.org>
> CommitDate: 2024-08-09 12:04:10 +0000
> 
>     profiles: mask glib-2.80 and co. due to issues when updating
>     
>     Bug: https://bugs.gentoo.org/937616
>     Signed-off-by: Pacho Ramos <pacho@gentoo.org>
> 
>  profiles/package.mask | 8 ++++++++
>  1 file changed, 8 insertions(+)

$ emerge --ignore-default-opts -puD --changed-use @world
[ ... ]
!!! All ebuilds that could satisfy ">=dev-libs/glib-2.79.0:2" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-libs/glib-2.80.4::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Pacho Ramos <pacho@gentoo.org> (2024-08-09)
# Mask until we find out a way to deal better with the upstream
# introduced circular dep, bug #937616


(dependency required by "dev-libs/gobject-introspection-1.80.1::gentoo" [ebuild])
(dependency required by "media-libs/harfbuzz-9.0.0::gentoo[introspection]" [installed])
Comment 16 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-09 13:42:16 UTC
I think we need to mask:
[ebuild     U  ] dev-util/glib-utils-2.80.4::gentoo [2.78.6::gentoo] PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13%" 5,407 KiB
[ebuild     U  ] dev-util/gdbus-codegen-2.80.4::gentoo [2.78.6::gentoo] PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13%" 0 KiB
as well.
Comment 17 Larry the Git Cow gentoo-dev 2024-08-09 14:07:50 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88edfd240adbad57c627633a32343b74ab575925

commit 88edfd240adbad57c627633a32343b74ab575925
Author:     Pacho Ramos <pacho@gentoo.org>
AuthorDate: 2024-08-09 14:07:07 +0000
Commit:     Pacho Ramos <pacho@gentoo.org>
CommitDate: 2024-08-09 14:07:39 +0000

    profiles: update glib-2.80 mask
    
    Thanks-to: Sam James
    Bug: https://bugs.gentoo.org/937616
    Signed-off-by: Pacho Ramos <pacho@gentoo.org>

 profiles/package.mask | 2 ++
 1 file changed, 2 insertions(+)
Comment 18 Nicolas 2024-08-09 20:01:59 UTC
(In reply to Andrew Nowa Ammerlaan from comment #9)
> (In reply to Andrew Nowa Ammerlaan from comment #4)

this patch solved the gobject-introspection-1.0 error, thank you.
Comment 19 Pacho Ramos gentoo-dev 2024-08-10 08:17:36 UTC
Hello,

I have retried to update from a system that wasn't still running the updated glib. 

What I have needed to do is:
1. USE="-introspection" emerge -1av dev-libs/glib dev-libs/gobject-introspection dev-util/gdbus-codegen
2. emerge -1av dev-libs/glib dev-libs/gobject-introspection dev-util/gdbus-codegen (maybe not strictly needed as it seems portage was able to properly rebuild them before the consumer... but I think it will be safer in this way)
3. Run the regular world update.

Maybe a news item could suggest this.
Comment 20 Pacho Ramos gentoo-dev 2024-08-10 08:30:48 UTC
Regarding the transitional dep on glib[introspection], I have tried to modify gobject-introspection ebuild to add a "+introspection" USE flag RDEPENDing on glib[introspection?]. With that ebuild, it is possible to break the circular dep issue at update time with:
1. USE="-introspection" emerge -1av dev-libs/glib dev-libs/gobject-introspection-common dev-libs/gobject-introspection dev-util/gdbus-codegen
2. emerge -1av dev-libs/glib dev-libs/gobject-introspection-common dev-libs/gobject-introspection dev-util/gdbus-codegen
3. Regular world update

In my case, I didn't need to rely on PDEPEND.
Comment 21 Mart Raudsepp gentoo-dev 2024-08-10 09:20:23 UTC
Relying on USE flag defaults isn't really a solution in ensuring deps that are required are there.
Comment 22 Pacho Ramos gentoo-dev 2024-08-10 10:35:16 UTC
I don't think introspection is really working on systems without "introspection" USE flag globally enabled.

What alternative would be feasible? PDEPEND on glib[introspection] from gobject-introspection is not possible as we still need to transitionally disable introspection in glib for updating.
Comment 23 Pacho Ramos gentoo-dev 2024-08-10 10:53:21 UTC
Maybe another workaround would be to, instead of relying on "introspection" for gobject-introspection package, use a local "glib-bootstrap" (or similar). 

That should cover the corner cases of people actively disabling "introspection" USE flags for glib and gobject-introspection and still expecting to have working introspection support. I think that should be really rare (and near "shooting themselves in the foot")... but it's true that needing to explicitly enable "glib-bootstrap" at migration time would minimize even more the temporal breakage:
1. USE="-introspection glib-bootstrap" emerge -1av dev-libs/glib dev-libs/gobject-introspection-common dev-libs/gobject-introspection dev-util/gdbus-codegen
2. emerge -1av dev-libs/glib dev-libs/gobject-introspection-common dev-libs/gobject-introspection dev-util/gdbus-codegen
3. Regular world update
Comment 24 gjdijkman 2024-08-15 12:17:08 UTC
I found a way around this.

Ive created a -r1 and a -r2 version of glib.
Its not a "nice" way but it works: https://git.gjdwebserver.nl/gjdwebserver/gjdwebserver-overlay/src/branch/master/dev-libs/glib

the r1 ebuild has the USE +introspection

but is missing
	!<dev-libs/gobject-introspection-1.80.1
	!<dev-util/gdbus-codegen-${PV}

and uses -Dintrospection=disabled

then just run: emerge --ask --oneshot =dev-libs/glib-2.80.4-r1
after that run: emerge --ask --oneshot dev-libs/gobject-introspection dev-util/gdbus-codegen

the r2 version is just the normal glib ebuild
And then emerge --ask --oneshot =dev-libs/glib-2.80.4-r2

After that gnome-shell 46 just emerges fine.

TBH I dont see a way (outside of a bootstrap version) around this issue.
Comment 25 Geoff Leach 2024-08-15 12:21:55 UTC
The approach suggested in comment #15 worked for me. 

(I also had to unmask thunderbird-128 as thunderbird-115 was crashing with wayland errors).
Comment 26 Geoff Leach 2024-08-15 13:55:55 UTC Comment hidden (obsolete)
Comment 27 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-15 14:01:27 UTC
I think we'll have to do https://bugs.gentoo.org/937616#c12 or some separate mini glib package w/o introspection installed to some custom prefix.
Comment 28 gjdijkman 2024-08-15 14:08:35 UTC Comment hidden (obsolete)
Comment 29 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-15 14:17:33 UTC Comment hidden (obsolete)
Comment 30 Pacho Ramos gentoo-dev 2024-08-16 09:18:34 UTC
(it seems these kind of links cannot be used in "See also"... I leave them here then as they could be useful too)

In Exherbo it seems they finally opted for the rebuilding via their "gobject-introspection" USE flag and they updated the reverse deps to glib[gobject-introspection]
https://gitlab.exherbo.org/exherbo/arbor/-/commit/e263444f8b18eea48954503532509d0b6e38d786
https://gitlab.exherbo.org/exherbo/arbor/-/commit/b2935eb2b88c45daebbf66d068bfacf8a094e231

And this is their news item (for paludis):
https://gitlab.exherbo.org/exherbo/arbor/-/commit/75bf7a6e1c62c46176c6ee7ee03a68f7458099b2
Comment 31 cyrillic 2024-08-18 13:53:56 UTC Comment hidden (offtopic)
Comment 32 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-18 21:59:09 UTC Comment hidden (obsolete)
Comment 33 cyrillic 2024-08-19 03:56:29 UTC Comment hidden (offtopic)
Comment 34 Blake Batson 2024-09-15 00:44:50 UTC
Created attachment 902996 [details]
gobject-introspection ebuild without glib dependency
Comment 35 Blake Batson 2024-09-15 00:45:29 UTC
Created attachment 902997 [details]
glib ebuild with some hacks for introspection
Comment 36 Blake Batson 2024-09-15 00:46:41 UTC
Was able to get a possible solution cooked up using the glib subproject for gobject-introspection. Had to get a little messy with PKG_CONFIG_PATH and LD_LIBRARY_PATH in the glib ebuild but it does work.
attachment 902996 [details]
attachment 902997 [details]
Comment 37 antonello 2024-09-17 16:32:45 UTC
In my case it worked the  
https://bugs.gentoo.org/937616#c19

but in step 2 introspection active...otherwise the compilation of some software fails with problems with GIR

1. USE="-introspection" emerge -1av dev-libs/glib dev-libs/gobject-introspection-common dev-libs/gobject-introspection dev-util/gdbus-codegen
2. USE="introspection" emerge -1av dev-libs/glib dev-libs/gobject-introspection-common dev-libs/gobject-introspection dev-util/gdbus-codegen
Comment 38 Blake Batson 2024-09-18 23:21:27 UTC
Created attachment 903297 [details]
merged glib + gobject-introspection ebuild

I was able to come up with a better solution actually, integrating gobject-introspection into the glib ebuild. This does gobject-introspection so all dependent packages will need to have their dependency changed to glib[introspection]. I tested both emerging from nothing and from our previous 2.78.6 versions, both worked without manual intervention.
Comment 39 Mart Raudsepp gentoo-dev 2024-09-26 03:29:39 UTC
Given the upstream plans to break the circular dep, my gut feeling says that we should have a dev-util/g-ir-scanner that just ships that part in a way that doesn't have a dev-libs/glib dependency (perhaps building an internal copy that gets static linked). Albeit it may have some complications in realizing that, e.g. python extension linking to gobject or something. Also I'm not sure if maybe it shouldn't also provide /usr/lib64/libgirepository-2.0.so then, at which point it really becomes a dev-libs/libgirepository instead, someone needs to look into it in detail.
Comment 40 Blake Batson 2024-09-26 03:54:58 UTC
Actually, I just realized we can still keep gobject-introspection as a discrete package while implementing my approach for building glib. All we have to do is just not install gobject-introspection during the glib build. A bit of extra compile time sure, but much simpler. I don't think the internal version of gobject-introspection matters, just so long as glib is able to build with it.