Segfault with creating custom widgets through GtkBuilder

Bug #834168 reported by Martin Pitt on 2011-08-25
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pygobject
Fix Released
Medium
pygobject (Ubuntu)
High
Martin Pitt

Bug Description

Current ubiquity crashes when running under pygobject 2.90. Easy local reproducer in a built ubiquity tree is:

$ GI_TYPELIB_PATH=src/webcam PYTHONPATH=. python -c 'from gi.repository import Gtk; import ubiquity.gtkwidgets; b=Gtk.Builder(); b.add_from_file("gui/gtk/stepPrepare.ui")'

I bisected this to http://git.gnome.org/browse/pygobject/commit/?id=7bc4122897, which explains why it works in the pygobject-2-28 branch (as this commit got reverted there to not break the pygtk ABI).

This might be a bug in GTK3's image builder or pygobject itself.

Martin Pitt (pitti) wrote :

I reported this upstream with a small self-contained reproducer. I uploaded a workaround to ppa:ubuntu-desktop/ppa, so if we will update pygobject to 2.90 in oneiric (see bug 828751), I'll keep this applied until this gets fixed properly.

Changed in pygobject (Ubuntu):
assignee: nobody → Martin Pitt (pitti)
importance: Undecided → High
status: New → Triaged
Changed in pygobject:
importance: Unknown → Medium
status: Unknown → New
Martin Pitt (pitti) wrote :
Changed in pygobject (Ubuntu):
status: Triaged → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package pygobject - 2.90.2-2

---------------
pygobject (2.90.2-2) experimental; urgency=low

  * Add revert-refcount-fix.patch: Revert
    http://git.gnome.org/browse/pygobject/commit/?id=7bc4122897 as a
    workaround for segfaults when creating custom widgets through the GObject
    constructor (such as through GtkBuilder). This works around
    https://bugzilla.gnome.org/show_bug.cgi?id=657403. This patch was reverted
    in the 2-28 branch as well, so reverting it here is no regression from
    2.28. (LP: #834168)

pygobject (2.90.2-1) experimental; urgency=low

  * New upstream bug fix release.
  * debian/copyright: Update to current licenses/copyrights, and convert to
    DEP-5.

pygobject (2.90.1-1) experimental; urgency=low

  * debian/control.in: Update Vcs-* for experimental branch.
  * New upstream release:
    - New rewritten invoker is twice as fast and easier to extend and debug
    - Complete break from static bindings so we may improve the core without
      breaking legacy APIs
    - Better type handling
    - Parallel installable with PyGObject 2.28 for legacy binding support
      (2.28 must be compiled with –disable-introspection)
    - Fixed object array handling
    - Added more overrides for PyGTK API emulation
    - Support for function calling using keyword arguments
    - GObject and GLib symbols can now have overrides
    - All static bit removed or made private
    - GVariants now work from callback returns
    - Note that this now enforces a consistent move to the GI bindings. I. e.
      you need to change all "import gobject" statements into "from
      gi.repository import GObject", same for glib.
   * Drop debian/patches/00git_*.patch, all upstream.
   * Drop 20_deprecated_spam.patch, obsolete.
   * debian/control.in: The static bindings (glib, gobject, pygtk, gtk, etc.)
     are deprecated and are now shipped in the separate packages
     python-gobject-2{,-dbg}. Add a dependency to these for the time being to
     not break backwards compatibility. Once all packages have been ported to
     use the GI bindings, this dependency and pygobject-2 will be dropped.
   * debian/control.in: Update package descriptions to point out that this is
     now GI only.
   * debian/control.in, debian/rules: Drop python-gobject-dev package. It's
     not relevant any more for this version, and now built from the
     pygobject-2 source package.
  * debian/rules: Bump shlibs.
  * Drop debian/python-gobject.examples: These are for the old static
    bindings. http://git.gnome.org/browse/pygobject/tree/demos is an actually
    useful and comprehensive example, but not shipped in the release tarballs.
  * debian/rules: Drop obsolete permission fixing, that only applied to the
    examples.
 -- Martin Pitt <email address hidden> Thu, 01 Sep 2011 18:52:17 +0000

Changed in pygobject (Ubuntu):
status: Fix Committed → Fix Released
Changed in pygobject:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.