← Back to team overview

desktop-packages team mailing list archive

[Bug 828751] Re: [FFE] update pygobject to 2.90.1

 

I'd appreciate a tracking bug so that we can keep an eye on where we are
with fixing regressions, but if we have that then I'm comfortable with
this, providing you ensure that you shepherd the changes through

Approved.

** Changed in: pygobject (Ubuntu)
       Status: New => Confirmed

-- 
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