Summary: | gtk_quit_add removed in GTK+ 3.0 | ||
---|---|---|---|
Product: | libcanberra | Reporter: | Craig Keogh <cskeogh> |
Component: | Unspecified | Assignee: | Lennart Poettering <lennart> |
Status: | NEW --- | QA Contact: | |
Severity: | blocker | ||
Priority: | medium | CC: | a9016009, cskeogh, guillaume.desmottes, jjardon, pochu27 |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
URL: | https://bugzilla.gnome.org/show_bug.cgi?id=639770 | ||
See Also: | https://bugzilla.gnome.org/show_bug.cgi?id=639770 | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Patch
Patch that uses g_atexit instead |
Description
Craig Keogh
2011-01-04 20:50:04 UTC
Created attachment 41663 [details] [review] Patch This is affecting Evolution - mail client too. It is not able to come up and throws warning as, /home/gtk3-branch/opt/gnome/bin/evolution: symbol lookup error: /home/gtk3-branch/opt/gnome/lib/gtk-3.0/modules/libcanberra-gtk-module.so: undefined symbol: gtk_quit_add Program exited with code 0177. I have removed the gtk_quit_add api call and then it seems evolution is working fine. GNOME 3.0 via JHBuild patches libcanberra as follows: http://git.gnome.org/browse/jhbuild/plain/patches/libcanberra-quit-add.patch Patch by Matthias Clasen. Nah, that patch is not acceptable. We must be able to flush the sound event queue before we go down. If gtk_quit_add() got removed some replacement in glib or gtk must be used. As long as that doesn't exist this bug cannot be fixed properly and I will not merge this patch. Created attachment 42123 [details] [review] Patch that uses g_atexit instead Unfortunately atexit() isn't really suitable either since it is not clear from which thread context and in which order it is called. While atexit() will work for this in the trivial cases, it won't in the general cases, since the code we execute during this shutdown routine is relying on some other libraries which must be initialized still but which is not guaranteed by atexit(). This shutdown code must be called from GLib/Gtk context in some way. And unless some gtk_quit_add()-like feature is readded into Glib or Gtk this cannot be fixed properly. GCC destructors/C++ static destructors are equally unusable for this. I have now filed a bug against gtk3 about this: https://bugzilla.gnome.org/show_bug.cgi?id=639770 BTW lc .27 disable the gtk_quit_add(9 for now, but this does not actually fix the problem and event sounds will be eaten unless gtk3 is fixed. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.