Package missing dependency "gnome-icon-theme-full" (Affects KDE)

Bug #879043 reported by Ruben van Os
26
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Pinta
Fix Released
High
Cameron White

Bug Description

Whenever Pinta is started (no matter the action, opening a file with it or just starting the program from the launcher) it shortly creates a window with titlebar for itself and an entry on the Task Manager and crashes before loading anything. This bug started appearing after upgrading to Kubuntu 11.10. Pinta worked without any issues under Kubuntu 11.04.

Output:
ruben@ruben-MS-7379VP:~$ pinta
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
GLib.GException: Icon 'gtk-dialog-error' not present in theme
  at Gtk.IconTheme.LoadIcon (System.String icon_name, Int32 size, IconLookupFlags flags) [0x00000] in <filename unknown>:0
  at Pinta.ErrorDialog.Build () [0x00000] in <filename unknown>:0
  at Pinta.ErrorDialog..ctor (Gtk.Window parent) [0x00000] in <filename unknown>:0
  at Pinta.MainClass.ExceptionManager_UnhandledException (GLib.UnhandledExceptionArgs args) [0x00000] in <filename unknown>:0
  at GLib.ExceptionManager.RaiseUnhandledException (System.Exception e, Boolean is_terminal) [0x00000] in <filename unknown>:0
Cairo.Context: called from finalization thread, programmer is missing a call to Dispose

How to reproduce:
1. Install Kubuntu 11.10
2. Start Pinta

Expected result:
Pinta starts

Actual result:
Pinta crashes silently

System information:
OS: Kubuntu 11.10
Pinta version: 1.0-3 (Official repository)

Possible cause:
Lack of GTK3 support in Kubuntu 11.10

What I have tried to fix this problem:
Reinstalling, purging.

Installing "gnome-icon-theme-full" fixed the problem.
The following lines are still shown on the terminal, but don't seem to cause any issues:
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"

(Sorry for the mess, Pinta developers. I am pretty new to this Launchpad bug reporting stuff so I hope I'm not accidentally causing you to get 20 or so mails)

description: updated
Revision history for this message
Cameron White (cameronwhite91) wrote :

Is there any output if you try to launch Pinta from the terminal??

Also, note that some people have had issues with missing icons on Kubuntu (see issue #785034), so that could possibly be the problem.

Revision history for this message
Ruben van Os (rubenvanos) wrote :

My apologies, I knew I forgot about something.

Well, I added the output to the description.

Also, after reading the other bug report, installing "gnome-icon-theme-full" fixed the issue. Pinta now starts without any issues. Perhaps label gnome-icon-theme-full as a dependency? Not sure how much you can still do if it's already in the Ubuntu Software Centre.

description: updated
description: updated
description: updated
Revision history for this message
Robert Nordan (rpvn) wrote :

I've had at least on other confirmation of this behaviour (from the Pinta Facebook page), so it looks like this is something we need to look into in the packaging.

summary: - Pinta always crashes on Kubuntu 11.10
+ Package missing dependency "gnome-icon-theme-full" (Affects KDE)
Changed in pinta:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Iain Lane (laney) wrote :

Can you try installing librsvg2-common (and /not/ having gnome-icon-theme-full installed), please?

You should have humanity-icon-theme installed (it is a dependency of gnome-icon-theme), and…

(precise-amd64)root@raleigh:/srv/home/laney/dev/debian/packaging/pkg-cli-apps/pinta# dpkg -L humanity-icon-theme | grep gtk-dialog-error
/usr/share/icons/Humanity/status/64/gtk-dialog-error.svg
/usr/share/icons/Humanity/status/16/gtk-dialog-error.svg
/usr/share/icons/Humanity/status/48/gtk-dialog-error.svg
/usr/share/icons/Humanity/status/128/gtk-dialog-error.svg
/usr/share/icons/Humanity/status/24/gtk-dialog-error.svg
/usr/share/icons/Humanity/status/22/gtk-dialog-error.svg
/usr/share/icons/Humanity/status/32/gtk-dialog-error.svg

Revision history for this message
Ruben van Os (rubenvanos) wrote :

@#4

I tried removing gnome-icon-theme-full, and just keeping librsvg2-common and humanity-icon-theme, but the issue still appears until I install gnome-icon-theme-full again.

I am unsure what you want me to do with that command, so I cannot assist you further there.

Revision history for this message
Iain Lane (laney) wrote :

Nothing. I was just demonstrating that humanity has the icons.

Revision history for this message
Iain Lane (laney) wrote :

BTW I think Pinta should be catching this exception and returning an "icon not found" icon in this case; it should not crash.

I don't know why the SVG icons cannot be loaded. Insights welcome...

Revision history for this message
Robert Nordan (rpvn) wrote :

A user on the mailing list recently reported that this sort of error showed up with the oxygen-gtk theme, but not the Sonar or Raleigh themes on OpenSUSE. There is a possibility that there might be a problem with certain themes, and that the error message about the icon missing in the theme is in fact correct.

Revision history for this message
webmarwell (webmarwell) wrote :
Download full text (4.2 KiB)

Same problem here on Kubuntu 11.10 KDE 4.8.1 and Pinta 1.1., no matter if I use oxygen-gtk or any other theme.

Installing gnome-icon-theme-full solved the problem. No more errors in the terminal. But I didn't use Pinta for half a year, as other things has been more important. Just because this...

So this just for documentation, starting with my standard KDE:

m@m:~$ pinta
GLib.GException: Symbol »gtk-dialog-error« nicht im Thema vorhanden
  at Gtk.IconTheme.LoadIcon (System.String icon_name, Int32 size, IconLookupFlags flags) [0x00000] in <filename unknown>:0
  at Pinta.ErrorDialog.Build () [0x00000] in <filename unknown>:0
  at Pinta.ErrorDialog..ctor (Gtk.Window parent) [0x00000] in <filename unknown>:0
  at Pinta.MainClass.ExceptionManager_UnhandledException (GLib.UnhandledExceptionArgs args) [0x00000] in <filename unknown>:0
  at GLib.ExceptionManager.RaiseUnhandledException (System.Exception e, Boolean is_terminal) [0x00000] in <filename unknown>:0

After installing gtk3-engines-oxygen output in terminal:

m@m:~$ pinta

Unhandled Exception: System.ArgumentException: 'gtk-close' is not a valid resource name of assembly 'Pinta.Resources, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
  at Gdk.PixbufLoader.InitFromAssemblyResource (System.Reflection.Assembly assembly, System.String resource) [0x00000] in <filename unknown>:0
  at Gdk.PixbufLoader..ctor (System.Reflection.Assembly assembly, System.String resource) [0x00000] in <filename unknown>:0
  at Gdk.Pixbuf..ctor (System.Reflection.Assembly assembly, System.String resource) [0x00000] in <filename unknown>:0
  at Gdk.Pixbuf.LoadFromResource (System.String resource) [0x00000] in <filename unknown>:0
  at Pinta.Resources.ResourceLoader.GetIcon (System.String name, Int32 size) [0x00000] in <filename unknown>:0
  at Pinta.ResourceManager.GetIcon (System.String name, Int32 size) [0x00000] in <filename unknown>:0
  at Pinta.ResourceManager.GetIcon (System.String name) [0x00000] in <filename unknown>:0
  at Pinta.Gui.Widgets.OpenImagesListWidget..ctor () [0x00000] in <filename unknown>:0
  at Pinta.OpenImagesPad.Initialize (MonoDevelop.Components.Docking.DockFrame workspace, Gtk.Menu padMenu) [0x00000] in <filename unknown>:0
  at Pinta.MainWindow.CreateDockAndPads (Gtk.HBox container) [0x00000] in <filename unknown>:0
  at Pinta.MainWindow.CreatePanels (Pinta.WindowShell shell) [0x00000] in <filename unknown>:0
  at Pinta.MainWindow.CreateWindow () [0x00000] in <filename unknown>:0
  at Pinta.MainWindow..ctor () [0x00000] in <filename unknown>:0
  at Pinta.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: 'gtk-close' is not a valid resource name of assembly 'Pinta.Resources, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
  at Gdk.PixbufLoader.InitFromAssemblyResource (System.Reflection.Assembly assembly, System.String resource) [0x00000] in <filename unknown>:0
  at Gdk.PixbufLoader..ctor (System.Reflection.Assembly assembly, System.String resource) [0x00000] in <filename unknown>:0
  at Gdk.Pixbuf..ctor (System.Reflection.Assembly assembly, System.String resource) [0x000...

Read more...

Revision history for this message
Malo Deniélou (malo) wrote :

I can confirm the bug with Pinta 1.1 under Mageia 2 (beta 2).
The link to the bug report is https://bugs.mageia.org/show_bug.cgi?id=5362
The gist of it is that Pinta seems to hardcode links to some non-standard gtk icons. Oxygen does not provide them and Pinta wrongfully crashes.

Revision history for this message
Malo Deniélou (malo) wrote :

I forgot, but the Mageia Bug report has a work around which consists in selecting a different icon theme with kde-settings (and not the gtk one). The crash in Pinta however is definitely something that should be fixed, whatever the selected themes.

Revision history for this message
Cameron White (cameronwhite91) wrote :

For stock icons, we're just using the constants provided by GTK# - e.g. http://docs.go-mono.com/?link=P%3aGtk.Stock.Close.

When loading an icon, Pinta first checks if the system theme can provide the icon, but otherwise it falls back to Pinta.Resources (which contains any custom icons that we have).

I agree that Pinta should not be crashing, but one would normally assume that standard icons (http://developer.gnome.org/gtk/stable/gtk-Stock-Items.html) are not missing ...

Revision history for this message
Cameron White (cameronwhite91) wrote :

I've added a check for missing icons in https://github.com/PintaProject/Pinta/commit/c596de0ee62fa284fd9f39d37f12755a48386170, and we now show a "missing image" icon if a stock icon is missing for some reason.

I think this should prevent the crashes mentioned in this bug report. Can someone verify that this indeed fixes the issue?

Robert Nordan (rpvn)
Changed in pinta:
status: Confirmed → In Progress
assignee: nobody → Cameron White (cameronwhite91)
Revision history for this message
Cameron White (cameronwhite91) wrote :

I added a further check so that Pinta still loads if the "missing image" icon is missing (https://github.com/PintaProject/Pinta/commit/4caa940c44415c953f87b9733333c8da3bef185e)

Revision history for this message
Malo Deniélou (malo) wrote :

thanks Cameron, this fixes the crash.
I however get this in the console, but I don't know if it's related to your patches.
(Pinta:12861): GdkPixbuf-WARNING **: GdkPixbufLoader finalized without calling gdk_pixbuf_loader_close() - this is not allowed. You must explicitly end the data stream to the loader before dropping the last reference.

Revision history for this message
Cameron White (cameronwhite91) wrote :

Yeah, that warning seems to be caused by these changes. I'll file a separate bug report for that.

Changed in pinta:
milestone: none → 1.3
status: In Progress → Fix Committed
Robert Nordan (rpvn)
Changed in pinta:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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