Opened 5 years ago

Closed 5 years ago

#60149 closed defect (fixed)

at-spi2-atk @2.34.1_0 breaks py-gobject3

Reported by: fhgwright (Fred Wright) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc: snarkhunter (Steve Langer), nerdling (Jeremy Lavergne)
Port: at-spi2-atk

Description

I discovered that GPSD's xgps program was broken, due to an import failure caused by a dlopen failure. This seems to involve multiple levels of dependency, but it appears that the root problem is in at-spi2-atk. I was able to get it to work again by rolling back a few ports to earlier versions, as follows:

MacPro:macports-ports fw$ port installed py27-gobject3 atk gtk3 at-spi2-atk at-spi2-core
The following ports are currently installed:
  at-spi2-atk @2.26.2_1+universal (active)
  at-spi2-atk @2.34.1_0+universal
  at-spi2-core @2.28.0_1+universal
  at-spi2-core @2.34.0_0+universal (active)
  atk @2.28.1_0+universal (active)
  atk @2.34.1_0+universal
  gtk3 @3.22.30_1+universal+x11
  gtk3 @3.24.12_0+universal+x11
  gtk3 @3.24.12_0+x11
  gtk3 @3.24.14_0+x11 (active)
  gtk3 @3.24.14_1+x11
  py27-gobject3 @3.28.3_0 (active)

BTW, although this is currently using Python 2.7, the problem is not dependent on the Python version.

The py-gobject3 port itself hasn't changed in the relevant time frame. Rolling back at-spi2 core proved to be unnecessary. I believe the rollback of gtk3 was only necessary to allow the rollback of atk, which in turn was only needed to allow the rollback of at-spi2-atk. So there's a good chance that it all boils down to fixing the latter.

I'm attaching a simple test program that demonstrates the problem. It works with Python 2.7-3.7, provided that pyXX-gobject3 is installed. It doesn't work with Python 3.8, for presumably unrelated reasons.

Attachments (1)

test-py-gtk3.py (173 bytes) - added by fhgwright (Fred Wright) 5 years ago.
Test program for py-gobject3 Gtk import

Download all attachments as: .zip

Change History (11)

Changed 5 years ago by fhgwright (Fred Wright)

Attachment: test-py-gtk3.py added

Test program for py-gobject3 Gtk import

comment:1 Changed 5 years ago by snarkhunter (Steve Langer)

Cc: snarkhunter added

comment:2 Changed 5 years ago by snarkhunter (Steve Langer)

I had the same problem. Reverting atk from @2.34.1_0 to @2.28.1_0 seems to have fixed it. I did not have to revert gtk3 or py27-gobject3, and I don't have at-spi1-* installed at all.

comment:3 Changed 5 years ago by fhgwright (Fred Wright)

Perhaps you have gtk3 -x11, which removes the dependency on at-spi2-atk. That suggests that the rollback of atk is independently necessary, rather than solely to accomodate the at-spi2-atk rollback.

comment:4 Changed 5 years ago by snarkhunter (Steve Langer)

Yes, you're right. I should have mentioned that I'm using +quartz -x11 variants.

comment:5 Changed 5 years ago by fhgwright (Fred Wright)

And unfortunately atk is nomaintainer. But if the problems with atk and at-spi2-atk are similar, then the fixes might be similar as well.

Based on the errors, I think the basic problem is that the libraries are built in a way that the Python gobject introspection code can't load.

comment:6 Changed 5 years ago by nerdling (Jeremy Lavergne)

Cc: nerdling added

comment:7 Changed 5 years ago by michaelld (Michael Dickens)

Please try out this PR < https://github.com/macports/macports-ports/pull/6544 > and see if it solves the issue. It does for me. It's an interim step between the current GI version and the one from <​https://github.com/macports/macports-ports/pull/5759> ... which isn't going anywhere quickly it looks like & is already outdated (1.64.0 is out; the PR is for 1.62.0).

comment:8 Changed 5 years ago by michaelld (Michael Dickens)

In df778af4f3507461b691c787ad00235adf5843b7/macports-ports (master):

gobject-introspection: update to 1.60.2

Add patch to minimally address @rpath introspection issue from #60149 . It's a bit of a hack, but it will generally work for MacPorts needs.

comment:9 Changed 5 years ago by fhgwright (Fred Wright)

This fixes the problem, but indeed (as noted in the PR) atk needs a revbump. After installing this upgrade, and undoing the three aforementioned rollbacks, it still didn't work, but then worked after rebuilding atk from source (which didn't take long).

comment:10 Changed 5 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.