Opened 7 months ago
Last modified 3 months ago
#69748 assigned defect
glib2, glib2-devel @2.80.0 conflicts with gobject-introspection
Reported by: | barracuda156 | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.3 |
Keywords: | Cc: | i0ntempest, lukaso (Lukas Oberhuber), captainproton1971 (Captain Proton), snarkhunter (Steve Langer), breun (Nils Breunese), deldotvee, kickingvegas (Charles Choi), dershow, MrB74, neverpanic (Clemens Lang), randymortensen (Randy Mortensen), amagela (Anthony M. Agelastos), andlabs (Pietro Gagliardi), cooljeanius (Eric Gallager) | |
Port: | glib2, glib2-devel, gobject-introspection |
Description
Error: Failed to activate glib2-devel: Image error: /opt/local/lib/girepository-1.0/GLib-2.0.typelib is being used by the active gobject-introspection port. Please deactivate this port first, or use 'port -f activate glib2-devel' to force the activation.
Attachments (2)
Change History (53)
comment:1 Changed 7 months ago by barracuda156
comment:2 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | i0ntempest lukaso added |
---|---|
Port: | glib2 added |
Summary: | glib2-devel @2.80.0 conflicts with gobject-introspection → glib2, glib2-devel @2.80.0 conflicts with gobject-introspection |
Has duplicate #69749.
comment:3 Changed 7 months ago by andlabs (Pietro Gagliardi)
I do not have either -devel
package installed and still get the error on upgrade. (In fact, I had recently wiped and reinstalled MacPorts from scratch, due to other accumulated issues.)
Pietros-MBP:_ pietro$ sudo port echo installed|egrep 'glib|gobject' glib2 @2.78.4_0+quartz glib2 @2.80.0_0+quartz gobject-introspection @1.78.1_2 Pietros-MBP:_ pietro$
Right now I have @2.78.4_0+quartz
manually reactivated to keep my glib-dependent packages working. These were built with -x11 +no_x11 +quartz
in variants.conf
but with no other variants AFAIK.
comment:4 Changed 7 months ago by mascguy (Christopher Nielsen)
Cc: | mascguy removed |
---|---|
Owner: | set to mascguy |
Status: | new → assigned |
comment:5 Changed 7 months ago by captainproton1971 (Captain Proton)
Cc: | captainproton1971 added |
---|
comment:6 Changed 7 months ago by mascguy (Christopher Nielsen)
Cc: | snarkhunter added |
---|
Has duplicate issue:69750
comment:7 Changed 7 months ago by mascguy (Christopher Nielsen)
Cc: | breun deldotvee kickingvegas dershow added |
---|
CCing others, from downstream issue #69751
comment:8 Changed 7 months ago by mascguy (Christopher Nielsen)
For anyone interested in the technical details/background: For version 1.80.x, some core introspection-related components were migrated between gobject-introspection
and glib2
.
And due to the changes, it looks like - and still working to confirm this - that glib2
now requires a two-step installation process. Still trying to wrap my head around the details, but thus far, the tentative approach looks like it might be something like:
- First
glib2
must be built with introspection disabled - Then
gobject-introspection
is built - And finally,
glib2
must be built again with introspection enabled.
There's nothing for anyone else to do at this point though, as this all needs to be handled by our ports for glib2
and gobject-introspection
.
In any case, I'm presently reviewing what's being done by Linux distributions, to determine the best pattern to use.
Suffice it to say, this is my top priority at the moment, given the potential user impact. And hoping to resolve this within the next 24 hours or less, to minimize that.
More to follow, as everything becomes more clear...
comment:9 Changed 7 months ago by MrB74
Also impacted are ports like podofo/podofo-0.10, poppler, harfbuzz
comment:10 Changed 7 months ago by MrB74
Cc: | MrB74 added |
---|
comment:11 Changed 7 months ago by neverpanic (Clemens Lang)
Cc: | neverpanic added |
---|
comment:12 Changed 7 months ago by wyuenho (Jimmy Yuen Ho Wong)
Cc: | wyuenho added |
---|
comment:13 Changed 7 months ago by randymortensen (Randy Mortensen)
Cc: | randymortensen added |
---|
Changed 7 months ago by thetrial (alabay)
Logfile for +universal, built under 10.12.6.
comment:14 Changed 7 months ago by thetrial (alabay)
glib2 @2.78.4_0+universal+x11 gobject-introspection @1.78.1_2+universal
I have problems, too. But I’m not quite sure if it has to do with the mentioned here. I see lots of Unknown namespace for symbol
. My variant is +universal
. I’ll add the logfile. I’m under 10.12.6.
comment:15 Changed 7 months ago by thetrial (alabay)
Cc: | thetrial added |
---|
comment:16 follow-up: 36 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
That's a different problem:
ld: warning: ignoring file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/glib/libglib-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64): /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/glib/libglib-2.0.dylib ld: warning: ignoring file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/gobject/libgobject-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64): /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/gobject/libgobject-2.0.dylib ld: warning: ignoring file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/gio/libgio-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64): /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/gio/libgio-2.0.dylib ld: warning: ignoring file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/gmodule/libgmodule-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64): /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_glib2/glib2/work/build-i386/gmodule/libgmodule-2.0.dylib
It's building i386 (as you requested by asking for the universal variant), then trying to link x86_64 which of course fails. It should be linking for i386 as well. File a new ticket please.
comment:17 Changed 7 months ago by dragos-bth (Dragos Ilie)
texlive impacted as well (due to poppler)
comment:18 Changed 7 months ago by wyuenho (Jimmy Yuen Ho Wong)
Can we revert the change and bump the epoch first if this issue can't be fixed quickly?
comment:19 follow-up: 21 Changed 7 months ago by christophecvr (christophecvr)
gtk3 is also affected many many packages needs rebuild when building for quartz only. Complete failure for atk,harbuzz and ... all same issue Couldn't find include 'GObject-2.0.gir' . Tried the trick above with removing introspection build glib2 and then again with introspection. No change. (glib2 with quartz) . Build by me is on macbookpro mid 2010 so blocked at High Sierra (10.13.6) . Build without legacy support and disabled macports wide universal support. core is fully x86_64 so i386 is nuisance for this mac.
comment:20 Changed 7 months ago by Gandoon (Erik Hedlund)
Now I am getting a bit confused as I initially also had something similar to this issue, but how I solved it was that I did end up force activating glib2 @2.80.0_0+quartz
, cleaning up the leftovers, and then upgrading to gobject-introspection @1.80.1_0
. It seems to have worked, but judging from others also having issues I am unsure if everything is healthy. At least I don't have any linking errors or similar.
I thought I just ended up building them in the "wrong order" and having the old gobject-introspection @1.78.1_2
active was what triggered the issue, but maybe it was a bit more involved.
comment:21 Changed 7 months ago by christophecvr (christophecvr)
Replying to christophecvr:
gtk3 is also affected many many packages needs rebuild when building for quartz only. Complete failure for atk,harbuzz and ... all same issue Couldn't find include 'GObject-2.0.gir' . Tried the trick above with removing introspection build glib2 and then again with introspection. No change. (glib2 with quartz) . Build by me is on macbookpro mid 2010 so blocked at High Sierra (10.13.6) . Build without legacy support and disabled macports wide universal support. core is fully x86_64 so i386 is nuisance for this mac.
Oeps sorry I did not noticed but now I did the suggested procedure by mascguy (Christopher Nielsen)
I just added a variant introspection into port file glib2. I set by configure.args-append -Dintrospection=disabled.
The variant introspection change this back to enabled. Uninstall gobject-instrospection (with -f) same for glib 2. Then installed glib2 with:
sudo port -s -v install glib2 +quartz
Then glib 2 was installed without introspection. then
sudo port install -s -v gobject-introspection
Then installed glib a second time by:
sudo port -s -v install glib2 +quartz +introspection
now glib2 is installed with introspection and indeed the :
/opt/local/share/gir-1.0/GObject-2.0.gir
Is indeed installed.
All packages are now building fine atk,harbuzz and ...
comment:22 Changed 7 months ago by mrdomino (Jōshin)
For me just now (with glib2 at 2.80.0_0 and gobject-introspection at 1.80.1_0) it was enough to do port uninstall -f glib2 gobject-introspection
followed by port install glib2 gobject-introspection
.
comment:23 follow-up: 25 Changed 7 months ago by mrdomino (Jōshin)
Ah, however, now while trying to update poppler I get:
:info:build Couldn't find include 'GObject-2.0.gir' (search path: '['/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_poppler/poppler/work/poppler-24.04.0/glib', '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_poppler/poppler/work/.home/.local/share/gir-1.0', 'gir-1.0', '/usr/local/share/gir-1.0', '/usr/share/gir-1.0', '/opt/local/share/gir-1.0', '/opt/local/share/gir-1.0', '/usr/share/gir-1.0']')
comment:25 Changed 7 months ago by christophecvr (christophecvr)
Replying to mrdomino:
Ah, however, now while trying to update poppler I get:
:info:build Couldn't find include 'GObject-2.0.gir' (search path: '['/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_poppler/poppler/work/poppler-24.04.0/glib', '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_poppler/poppler/work/.home/.local/share/gir-1.0', 'gir-1.0', '/usr/local/share/gir-1.0', '/usr/share/gir-1.0', '/opt/local/share/gir-1.0', '/opt/local/share/gir-1.0', '/usr/share/gir-1.0']')
Yes this was at first by me also. You need to do it like I just explained change you're portfile and create a variant introspection. There are maybe outher ways but that is the only I found.
add to port file : the -Dintrospection=disabled
configure.args-append \ -Ddefault_library=both \ -Dlibelf=enabled \ -Dlibmount=disabled \ -Dwarning_level=0 \ -Dintrospection=disabled
then create variant in port file
variant introspection { configure.args-replace \ -Dintrospection=disabled \ -Dintrospection=enabled } and use it as explained.
comment:26 follow-up: 27 Changed 7 months ago by eirnym (Eir Nym)
According to internet search (google, ddg, etc), all package systems has been failed with this change in glib2/gobject-introspection. I believe core developers thought that system has already gobejct-introspection library installed and they didn't check other applications.
Could somebody ping core developers? I believe it's worth a while to let them know what mess they have been made.
comment:27 follow-up: 48 Changed 7 months ago by mascguy (Christopher Nielsen)
Replying to eirnym:
According to internet search (google, ddg, etc), all package systems has been failed with this change in glib2/gobject-introspection. I believe core developers thought that system has already gobejct-introspection library installed and they didn't check other applications.
Could somebody ping core developers? I believe it's worth a while to let them know what mess they have been made.
Let's try to avoid criticizing upstream. My only complaint is that the release notes didn't shout this out more clearly, as it's not immediately clear from either project how much things changed for 1.80.x. But otherwise, Linux distribution and such seem to have this figured out, so this is on me.
comment:28 follow-up: 29 Changed 7 months ago by Behinder (behinder)
There should be separate place in hell for people doing such breaking maneuvers between packages.
comment:29 Changed 7 months ago by mascguy (Christopher Nielsen)
Replying to Behinder:
There should be separate place in hell for people doing such breaking maneuvers between packages.
Upstream has the best of intentions, and I suspect this is something they've wanted to do for a long time. (It was simply a matter of when to do it, and it's one of those things that needed to be done.) Presumably this improves things for the longer-term, allows them to clean things up, etc.
comment:30 Changed 7 months ago by Christopher Nielsen <mascguy@…>
comment:31 Changed 7 months ago by Christopher Nielsen <mascguy@…>
comment:32 Changed 7 months ago by Christopher Nielsen <mascguy@…>
comment:33 Changed 7 months ago by amagela (Anthony M. Agelastos)
Cc: | amagela added |
---|
comment:34 follow-up: 38 Changed 7 months ago by Christopher Nielsen <mascguy@…>
comment:35 Changed 7 months ago by christophecvr (christophecvr)
Well guess I stay with previous version. With the rebuild you proposed as solution and when you do this right by adapting the glib2 port we can continu to build and I guess it will be just the wait on a upstream upgrade.
comment:36 Changed 7 months ago by thetrial (alabay)
Replying to ryandesign:
That's a different problem:
[…]
It's building i386 (as you requested by asking for the universal variant), then trying to link x86_64 which of course fails. It should be linking for i386 as well. File a new ticket please.
Done: #69771. Thank you.
comment:37 Changed 7 months ago by thetrial (alabay)
Cc: | thetrial removed |
---|
comment:38 follow-up: 39 Changed 7 months ago by barracuda156
Replying to Christopher Nielsen <mascguy@…>:
It looks like some ports are still broken.
Are we to expect a fixed new version soon? If yes, I will not bother with revbumping.
- S. Need to review in fact more closely, maybe those ports were built locally with a newer glib2 and friends, but in the master there is no issue.
comment:39 Changed 7 months ago by mascguy (Christopher Nielsen)
Replying to barracuda156:
It looks like some ports are still broken.
I'm not planning to update glib2 again anytime soon.
So which ports are still broken?
And did you allow the rev-bump3d ports to rebuild?
comment:40 follow-up: 41 Changed 7 months ago by lukaso (Lukas Oberhuber)
I think there might still be problems with gobject-introspection
. I don't really know for sure but my builds of GIMP are failing: https://gitlab.gnome.org/GNOME/gimp/-/issues/11361
With this:
--- stderr --- error: /Library/Developer/CommandLineTools/usr/bin/install_name_tool: can't create output file: /Users/circleci/macports-gimp3-arm64/lib/libgirepository-1.0.dylib.XXXXXX (Operation not permitted) fatal error: /Library/Developer/CommandLineTools/usr/bin/install_name_tool: cannot rename /Users/circleci/macports-gimp3-arm64/lib/libgirepository-1.0.1.dylib to /Users/circleci/macports-gimp3-arm64/lib/libgirepository-1.0.dylib.XXXXXX (No such file or directory)
It looks very reminiscent of #63641
comment:41 Changed 7 months ago by mascguy (Christopher Nielsen)
Replying to lukaso:
I think there might still be problems with
gobject-introspection
. I don't really know for sure but my builds of GIMP are failing: https://gitlab.gnome.org/GNOME/gimp/-/issues/11361With this:
--- stderr --- error: /Library/Developer/CommandLineTools/usr/bin/install_name_tool: can't create output file: /Users/circleci/macports-gimp3-arm64/lib/libgirepository-1.0.dylib.XXXXXX (Operation not permitted) fatal error: /Library/Developer/CommandLineTools/usr/bin/install_name_tool: cannot rename /Users/circleci/macports-gimp3-arm64/lib/libgirepository-1.0.1.dylib to /Users/circleci/macports-gimp3-arm64/lib/libgirepository-1.0.dylib.XXXXXX (No such file or directory)It looks very reminiscent of #63641
For others CCed on this ticket, have you been able to successfully update since we fixed all of this?
comment:42 follow-up: 43 Changed 7 months ago by lukaso (Lukas Oberhuber)
Yes, this was a “from scratch” build after the versions had been reverted (if that’s what is meant by “fixed all this”).
Changed 7 months ago by lukaso (Lukas Oberhuber)
Gimp failing to build because of install_name_tool issue with gobject-introspection
comment:43 Changed 7 months ago by mascguy (Christopher Nielsen)
Replying to lukaso:
Yes, this was a “from scratch” build after the versions had been reverted (if that’s what is meant by “fixed all this”).
Sure, understood. But ultimately I need to know whether this same issue is also affecting others, to determine where to start digging.
comment:44 Changed 7 months ago by lukaso (Lukas Oberhuber)
I realized after I posted it that it sounded a bit snarky. Wasn’t meant that way, and sorry if it came across that way. This has been a tricky beast!
comment:45 Changed 7 months ago by wyuenho (Jimmy Yuen Ho Wong)
Cc: | wyuenho removed |
---|
comment:47 Changed 7 months ago by lukaso (Lukas Oberhuber)
The GIMP problem looks like it was on the GIMP side, so all clear from me as well.
comment:48 Changed 7 months ago by eirnym (Eir Nym)
Replying to mascguy:
Replying to eirnym:
According to internet search (google, ddg, etc), all package systems has been failed with this change in glib2/gobject-introspection. I believe core developers thought that system has already gobejct-introspection library installed and they didn't check other applications.
Could somebody ping core developers? I believe it's worth a while to let them know what mess they have been made.
Let's try to avoid criticizing upstream. My only complaint is that the release notes didn't shout this out more clearly, as it's not immediately clear from either project how much things changed for 1.80.x. But otherwise, Linux distribution and such seem to have this figured out, so this is on me.
I respect your point, but I see exactly the same discussion in just every distro for this particular version (as ddg/google shows in their results). Linux distributions has "figured this out", as 99% of users will just download pre-built binaries, and other 1% will read mailing lists of respective distributions. If port/package maintainters won't notify developers, there's a chance, that they won't notice it at all.
The dependency cycle clearly be a result of an improper refactoring, when tools were already pre-installed on all machines and developers were just trying to rebuild libraries even on CI. I see it as a misuse of current build environment and testing of upgrade only without a package manager (e.g. make install) vs clean install.
comment:49 Changed 6 months ago by andlabs (Pietro Gagliardi)
Cc: | andlabs added |
---|
comment:50 Changed 6 months ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
comment:51 Changed 3 months ago by barracuda156
Just got this when trying to update gom
:
[40/41] /opt/local/bin/gi-docgen generate --quiet --no-namespace-dir --config=doc/Gom.toml --output-dir=doc/gom-1.0 --content-dir=/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_gnome_gom/gom/work/gom-0.5.3/doc gom/Gom-1.0.gir FAILED: doc/gom-1.0 /opt/local/bin/gi-docgen generate --quiet --no-namespace-dir --config=doc/Gom.toml --output-dir=doc/gom-1.0 --content-dir=/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_gnome_gom/gom/work/gom-0.5.3/doc gom/Gom-1.0.gir ERROR: Could not find GIR dependency in the search paths: GObject-2.0 [41/41] /opt/local/bin/g-ir-compiler gom/Gom-1.0.gir --output gom/Gom-1.0.typelib --includedir=/opt/local/share/gir-1.0 --shared-library=/opt/local/lib/libgom-1.0.0.dylib ninja: build stopped: subcommand failed.
Installed glib2
and gobject-introspection
are MacPorts' ones:
36-25% port -v installed glib2 | grep active glib2 @2.78.4_1+x11 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2024-07-28T20:54:43+0800' 36-25% port -v installed gobject-introspection | grep active gobject-introspection @1.78.1_3 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2024-09-02T15:49:10+0800'
gobject-introspection-devel
installed fine with the newglib2-devel
, so incompatibility seems to only apply to a combo of devel and non-devel versions.