GNOME Bugzilla – Bug 700495
Update to 2.24.3-1 breaks VMWare Workstation
Last modified: 2013-06-28 16:30:54 UTC
This was also reported downstream @ Fedora https://bugzilla.redhat.com/show_bug.cgi?id=963909 Description of problem: After update to 2.24.3-1 VMWare Workstation 9.0.2 opens with a blank white window. Eventually a Force Quit dialog is presented to kill the unresponsive program. Version-Release number of selected component (if applicable): 2.24.3-1 How reproducible: Always Steps to Reproduce: 1. Update gtkmm24 to 2.24.3-1 2. Start VMWare Workstation Actual results: Program fails to start Expected results: Program runs Additional info: "yum downgrade gtkmm24" to downgrade to 2.24.2-5 fixes the problem. I also found a report here which is what made me try the gtkmm24 downgrade: https://aur.archlinux.org/packages/vmware-workstation/
CCing Hubert, who made this release. I have no idea what might be causing this, but the 2.24.3 release seems to generally be a disaster, and I recommend that any distro does not try to package it for now.
*sigh*
I compared the source code in gtkmm 2.24.2 and 2.24.3. There are many small differences, because different versions of gmmproc have been used for generating .h and .cc files from the .hg and .ccg files. Almost all of these differences are harmless, I'm sure, but one of them might not be. gtk/src/printunixdialog.hg contains _WRAP_METHOD(Glib::RefPtr<Printer> get_selected_printer(), gtk_print_unix_dialog_get_selected_printer, refreturn) _WRAP_METHOD(Glib::RefPtr<const Printer> get_selected_printer() const, gtk_print_unix_dialog_get_selected_printer, refreturn. constversion) Note the period instead of comma in the second _WRAP_METHOD. That's wrong. Different versions of gmmproc generate different code from this erroneous input. gtkmm 2.24.2 ------------ Glib::RefPtr<const Printer> PrintUnixDialog::get_selected_printer() const { Glib::RefPtr<const Printer> retvalue = Glib::wrap(gtk_print_unix_dialog_get_selected_printer( const_cast<GtkPrintUnixDialog*>(gobj()))); if(retvalue) retvalue->reference(); //The function does not do a ref for us. return retvalue; } gtkmm 2.24.3 ------------ Glib::RefPtr<const Printer> PrintUnixDialog::get_selected_printer() const { return Glib::wrap(gtk_print_unix_dialog_get_selected_printer( const_cast<GtkPrintUnixDialog*>(gobj()))); } See also bug 657751 comment 5. I doubt that this is the reason why the VMWare Workstation does not start up correctly, but it shows that it would have been a good idea to generate the code for gtkmm 2.24.3 with the same version of gmmproc (the same version of glibmm) as was used when gtkmm 2.24.2 was released. If Hubert (or anyone else) wants to dig further into the problem with the VMWare Workstation, I'm sure more information is useful, such as - If VMWare Workstation is started from a terminal window, are any error messages printed? - Is it possible to get any useful information from gdb, e.g. backtraces? If there are error messages, set a breakpoint at g_log and print backtraces showing from where the messages come.
Yes, I think the only thing that makes sense is to build another gtkmm 2.24 release with the older glibmm.
I thin from now and onward, gtkmm should ship it own version of gmmproc. I was not expecting this to even be an issue, I was wrong. Very wrong. Now I need to figure out how to do that as I'm currently very short of disk space to compile....
Scott, This is likely fixed in the gtkmm 2.24.4 release. Could you give it a try, please, and confirm that this fixes the VMWare Workstation issue you were seeing? If it helps, there's a Fedora 20 build at http://koji.fedoraproject.org/koji/buildinfo?buildID=430131
Yes, it it now fixed :)
Excellent, thanks for testing!