desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #04926
[Bug 828751] Re: [FFE] update pygobject to 2.90.1
All known programs which mix GI and static bindings have been fixed, see
tracking bug.
However, ubiquity segfaults with the new pygobject, I track this in bug
834168.
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to pygobject in Ubuntu.
https://bugs.launchpad.net/bugs/828751
Title:
[FFE] update pygobject to 2.90.1
Status in “pygobject” package in Ubuntu:
Confirmed
Bug description:
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
* A lot of bug fixing for bindings (handling of more data types, closures, etc.)
* 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:
http://packages.qa.debian.org/p/pygobject/news/20110817T101759Z.html
http://packages.qa.debian.org/p/pygobject-2/news/20110818T133252Z.html
= 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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/828751/+subscriptions
References