AppImageCommunity / AppImageUpdate

AppImageUpdate lets you update AppImages in a decentral way using information embedded in the AppImage itself.
https://appimage.org
MIT License
567 stars 57 forks source link

Segmentation Fault running AppImageUpdate on Ubuntu 18.04 #185

Open SevenBlocks opened 2 years ago

SevenBlocks commented 2 years ago

I get a segmentation fault trying to run AppImageUpdate with no arguments on Ubuntu 18.04:

$ AppImageUpdate-x86_64.AppImage

AppImageUpdate version 1-alpha (commit 97645f5), build 40 built on 2021-11-10 17:47:46 UTC

(AppRun.wrapped:21216): GLib-GIO-CRITICAL **: 09:23:46.453: g_converter_convert: assertion 'outbuf_size > 0' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: Unable to load resource for composite template for type 'GtkDialog': The resource at “/org/gtk/libgtk/ui/gtkdialog.ui” failed to decompress

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): GLib-GIO-CRITICAL **: 09:23:46.495: g_converter_convert: assertion 'outbuf_size > 0' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: Unable to load resource for composite template for type 'GtkFileChooserDialog': The resource at “/org/gtk/libgtk/ui/gtkfilechooserdialog.ui” failed to decompress

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: gtk_widget_init_template: assertion 'template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: _gtk_box_get_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_box_set_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_button_box_get_layout: assertion 'GTK_IS_BUTTON_BOX (widget)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_widget_init_template: assertion 'template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_file_chooser_set_delegate: assertion 'GTK_IS_FILE_CHOOSER (delegate)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): GLib-GObject-WARNING **: 09:23:46.497: invalid (NULL) pointer instance

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.497: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.497: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.497: g_object_get_property: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_add: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_header_bar_set_show_close_button: assertion 'GTK_IS_HEADER_BAR (bar)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_add: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.501: gtk_file_chooser_set_current_folder_file: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.501: gtk_file_chooser_set_current_folder_file: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_get_property: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.501: gtk_file_chooser_get_files: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_get_property: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.504: gtk_file_chooser_add_filter: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_file_chooser_add_filter: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_file_chooser_set_current_folder_file: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_box_get_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_box_set_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_button_box_get_layout: assertion 'GTK_IS_BUTTON_BOX (widget)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed
Segmentation fault (core dumped)
probonopd commented 2 years ago

Please see if the solution from https://github.com/AppImage/AppImageUpdate/issues/150 resolves this.

We should get rid of Gtk entirely. Not worth the hassle.

TheAssassin commented 2 years ago

I think shipping those platform plugins was initially your idea, wasn't it? I remember a discussion about some "alien look". Aren't they built and installed in the CI scripts in this repository?

BobSynfig commented 2 years ago

Without doing any modification to the appimage as described in https://github.com/AppImage/AppImageUpdate/issues/150

Just run from the console: XDG_CURRENT_DESKTOP=dummy ./AppImageUpdate-x86_64.AppImage

See [squashfs-root]/apprun-hooks/linuxdeploy-plugin-qt-hook.sh

# generated by linuxdeploy-plugin-qt

# try to make Qt apps more "native looking" on Gtk-based desktops, if possible
# see https://github.com/AppImage/AppImageKit/issues/977#issue-462374883
case "${XDG_CURRENT_DESKTOP}" in
    *GNOME*|*gnome*|*XFCE*)
        export QT_QPA_PLATFORMTHEME=gtk3
        ;;
esac
TheAssassin commented 2 years ago

"Native look" is so overrated... @BobSynfig mind to open an issue over at linuxdeploy-plugin-qt?

probonopd commented 2 years ago

@TheAssassin I'd say let's just remove the offending parts as explained in #150, wdyt?

Seems like trying to make Qt apps look native on Gtk systems is just not worth the hassle because Gtk doesn't seem to offer the long-term stability guarantees we'd want. (Personally I am trying to keep my systems as Gtk-free as possible nowadays.)

TheAssassin commented 2 years ago

There is nothing wrong with shipping the platform themes.

probonopd commented 2 years ago

...but apparently not with shipping its (Gtk) dependencies.

TheAssassin commented 2 years ago

See https://github.com/AppImage/AppImageUpdate/issues/185#issuecomment-1024091513. "Guessing" that environment variable is the issue.