[MacPorts] #40179: Can't import gi.repository after installing gtk3

MacPorts noreply at macports.org
Tue Aug 20 05:32:41 PDT 2013


#40179: Can't import gi.repository after installing gtk3
------------------------+--------------------------------
  Reporter:  istlota@…  |      Owner:  macports-tickets@…
      Type:  defect     |     Status:  closed
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.2.0
Resolution:  invalid    |   Keywords:
      Port:  gtk3       |
------------------------+--------------------------------

Comment (by cal@…):

 Replying to [comment:3 istlota@…]:
 > Thanks. It continues to amaze me how promptly MacPorts support responds
 to opened tickets, especially considering that I opened this ticket on a
 Sunday.

 I just happened to be at doing MacPorts-related stuff anyway.

 Replying to [comment:3 istlota@…]:
 > Ergo, why did installing the gtk3 port on my mac end up with python not
 being able to find gi.repository?

 The software installed by the `gtk3` port does not need the python
 bindings from `py27-gobject3`. This is also the reason why there is no
 dependency from `gtk3` to `py27-gobject3` (also: if there was, which
 version of python should we depend on? There is
 `py{26,27,31,32,33}-gobject3`).

 Replying to [comment:3 istlota@…]:
 > Which means gtk3 incorrectly installed py27-gobject when it needed to
 install py27-gobject3 to operate properly. To be more specific, gtk3
 installed at-spi2-atk as a dependency, which installed dbus-python27 as a
 dependency, which installed p27-gobject as a dependency.

 First: `gtk3` does not need `py27-gobject3` to operate properly. Dependent
 software that uses the python bindings for Gtk might, but that software
 should declare a dependency on `py27-gobject3` then.

 I don't know (despite being the maintainer for this port) why `at-
 spi2-atk` needs `dbus-python27`. `dbus-python27` needs a dependency on
 `py27-gobject` (the gtk2 version), because it uses an old API provided by
 `py27-gobject` (but I just noticed the relevant file
 `./dbus/gobject_service.py` in the `dbus-python27` sources also supports
 using `py27-gobject3`). You could file a bug requesting to change the
 dependency to `py27-gobject3` instead of `py27-gobject`. But even this
 won't solve your original issue, because `gtk3 -x11 +quartz` doesn't pull
 in `at-spi2-atk` and thus doesn't have a transitive dependency on
 `py27-gobject3`.

 Replying to [comment:3 istlota@…]:
 > Is this one of those catch-22s the entire industry is having to just
 accept for now due to having two Ways of binding Python to GTK [GTK2 and
 PyGtk vs. GTK3 and PyGObject] which can and often do break each other when
 both are used on the same machine?

 How do PyGtk and PyGObject break each other? I haven't noticed any
 problems with running both versions simultaneously.

 Replying to [comment:3 istlota@…]:
 > Or, can the gtk3 portfile, perhaps, be modified to install the
 appropriate flavor of gobject3 [py27-gobject3 in my case] as a dependency?

 As explained above, this is not the correct way to fix this. Dependent
 software needs to depend on `py*-gobject3` if it needs the Gtk Python
 bindings. If you need them for a project outside MacPorts I'm afraid you
 will have to install them manually.

-- 
Ticket URL: <https://trac.macports.org/ticket/40179#comment:4>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list