CrossOver Support

Crossover won't uninstall properly on openSUSE 11.4 & 12.1


If you have installed Crossover as root (which is what happens when you install from the .rpm package or, in specialized cases, when you install from the .bin into /opt), the standard recommended uninstall procedure is to first click on the Uninstall menu item in Crossover's menu (to delete user-specific info/bottles), and then run the uninstall script as root (to fully remove Crossover).

However, on openSUSE 11.4 sudo does not preserve access to the display in a manner which Crossover expects, and attempts to uninstall completely will result in error messages like this:

weaver@linux-zfci:~> sudo /opt/cxoffice/bin/cxuninstall root's password: /usr/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display warnings.warn(str(e), _gtk.Warning) /opt/cxoffice/bin/cxmessage:146: Warning: invalid (NULL) pointer instance dialog = gtk.MessageDialog(parent=None, message_format=options.title, flags=gtk.DIALOG_MODAL, buttons=gtk.BUTTONS_NONE) /opt/cxoffice/bin/cxmessage:146: Warning: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed dialog = gtk.MessageDialog(parent=None, message_format=options.title, flags=gtk.DIALOG_MODAL, buttons=gtk.BUTTONS_NONE) /opt/cxoffice/bin/cxmessage:181: GtkWarning: IA__gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed dialog.add_button(cxutils.cxgettext(buttonPair[0]), response) /opt/cxoffice/bin/cxmessage:181: Warning: g_object_get: assertion `G_IS_OBJECT (object)' failed dialog.add_button(cxutils.cxgettext(buttonPair[0]), response) /opt/cxoffice/bin/cxmessage:171: GtkWarning: IA__gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed dialog.add_button(gtk.STOCK_CANCEL, response) /opt/cxoffice/bin/cxmessage:171: Warning: g_object_get: assertion `G_IS_OBJECT (object)' failed dialog.add_button(gtk.STOCK_CANCEL, response) /opt/cxoffice/bin/cxmessage:171: Warning: value "TRUE" of type `gboolean' is invalid or out of range for property `visible' of type `gboolean' dialog.add_button(gtk.STOCK_CANCEL, response) /opt/cxoffice/bin/cxmessage:210: GtkWarning: Screen for GtkWindow not set; you must always set a screen for a GtkWindow before using the window rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: GtkWarning: IA__gdk_pango_context_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_context_set_font_description: assertion `context != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_context_set_base_dir: assertion `context != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_context_set_language: assertion `context != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_new: assertion `context != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_set_text: assertion `layout != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_set_attributes: assertion `layout != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_set_alignment: assertion `layout != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_set_ellipsize: assertion `PANGO_IS_LAYOUT (layout)' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_set_single_paragraph_mode: assertion `PANGO_IS_LAYOUT (layout)' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_set_width: assertion `layout != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_get_extents: assertion `layout != NULL' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_set_wrap: assertion `PANGO_IS_LAYOUT (layout)' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: Warning: g_object_unref: assertion `G_IS_OBJECT (object)' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: GtkWarning: IA__gdk_screen_get_width: assertion `GDK_IS_SCREEN (screen)' failed rval = dialog.run() /opt/cxoffice/bin/cxmessage:210: PangoWarning: pango_layout_get_line_count: assertion `layout != NULL' failed rval = dialog.run() cxuninstall:warning: cxmessage died. You may want to try 'cxuninstall --help' for alternatives

You have two possible workarounds to choose from in order to fully uninstall Crossover from openSUSE 11.4.

In terminal:

$ /opt/cxoffice/bin/cxsu /opt/cxoffice/bin/cxuninstall
It's not necessary to run this command as root from the start, you'll be prompted for root perms

Or you can simply use openSUSE's "Install and Remove Software" graphical tool to remove Crossover.
Last modified on 2012-01-09 10:56:35 by Jack Phinney
Are you sure you want to delete this page?
Note: Any nested pages that are under this one will be moved up one level. Any attachments tied to this page will be deleted.
Move / Rename Page
Unknown Error, unable to move!
That page exists already!
One or more of the parent pages specified in new path do not exist!
/support/wiki/ /support/wiki/linux/faq/suse_uninstall
Please Wait...
eyJjYXJ0IjowLCJ0enMiOi02LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNTM4NzY3MzM4fQ==