Public bug reported:

There have been some recent developments and changes for pygobject
recently, which would be good to get into Oneiric IMHO.

= Background =
pygobject currently provides two things:

  * static Python bindings for a few basic GNOME libraries, such as glib, 
gobject
  * dynamic gobject-introspection binding generator 
[https://live.gnome.org/PyGObject/IntrospectionPorting]

= Status Quo =
So far we have pygobject 2.28 in oneiric, which was the version shipped with 
GNOME 3.0. It ships both the static bindings (which are being deprecated, and 
there is e. g. no pygtk for GTK3), as well as a reasonably stable GI binding. 
During Natty and Oneiric we have ported many of our Ubuntu specific apps, as 
well as some GNOME ones from pygtk2 (static binding) to PyGI (i. e. using the 
GI bindings).

= 3.0 =

Recently there has been a 2.90.1 release for pygobject:
http://www.j5live.com/2011/08/14/announce-pygobject-2-90-1-released-3-0-pre-release/

The main changes are:

 * static bindings are dropped completely
 * parallel installability with the 2.28 version
 * Much more robust GI bindings (e. g. the rewritten invoke catches a lot of 
errors as proper exceptions which previously went unnoticed and potentially 
caused hard-to-debug segfaults later on)
 * This is now absolutely zero tolerant against importing both the static and 
the GI version of a particular library. This was mostly the case with 2.28 as 
well, but did work in some cases (like "import gobject; from gi.repository 
import Gtk", in particular for "glib" and "gobject"). These now cause errors as 
well.

It seems the current plan is that GNOME 3.2 will require pygobject 3.0,
and recently the jhbuild module set was switched over accordingly:

  http://git.gnome.org/browse/jhbuild/commit/?id=8878eecb377f

= Proposal =

 * Package the old pygobject-2 separately, and disable GI support there.
This is just about zero risk, and means that all applications which use
pygtk and the old static bindings (such as software-center, and a lot of
other older software) continue running.

 * Update pygobject to 2.90.1. (see below for impact)

The main difficulty is to make the package install cleanly in parallel.
This work has already been done by Martin Pitt in the Debian svn, and
uploaded to experimental (pygobject-2 currently in NEW queue).

= Impact =

The update will cause a lot of GI based python applications to stop
working, as it is a very common error to mix static and GI bindings. I
already went through most of our GI applications yesterday and prepared
them for the switch, in case to be ready if/when we do it.

  https://launchpad.net/ubuntu/+source/software-properties/0.81.8
  https://launchpad.net/ubuntu/+source/aptdaemon/0.43+bzr669-0ubuntu1
  https://code.launchpad.net/~pitti/software-center/gi-fixes/+merge/71854
  https://launchpad.net/ubuntu/+source/usb-creator/0.2.31.2
  (and some more, basically everything I could find except for ubiquity, which 
I didn't check yet)

While I tested our apps with the new pygobject lightly, I cannot
guarantee that they all work without any regression. I am happy to work
on fallout if it happens, though.

On the pro side, we'll get the better performance and stability of the
rewritten invoker, and also a better platform where new code should be
written on, to avoid the bugs introduced by the overly tolerant 2.28
version.

Packages are available for testing in https://launchpad.net/~ubuntu-
desktop/+archive/ppa/+packages.

** Affects: pygobject (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/828751

Title:
  [FFE] update pygobject to 2.90.1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/828751/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to