Bug 965365

Summary: Anaconda should explicitly add GNOME icon theme path to the GTK+ icon theme search path, or explicitly set the GNOME icon theme
Product: [Fedora] Fedora Reporter: Adam Williamson <awilliam>
Component: anacondaAssignee: Chris Lumens <clumens>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 19CC: anaconda-maint-list, awilliam, dshea, g.kaviyarasu, jonathan, kevin, mkolman, rdieter, satellitgo, sbueno, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: anaconda-19.31-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-17 06:22:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 965358    

Description Adam Williamson 2013-05-21 03:30:49 UTC
Anaconda relies on a lot of icons that are present only in gnome-icon-theme-symbolic , which is a part of the GNOME icon theme (in /usr/share/icons/gnome ).

We can't rely on the GNOME icon theme already being in the search path in every possible case; it's not a universal fallback. The icons aren't in hicolor, which really is a universal fallback.

It would make things more robust if anaconda simply explicitly added /usr/share/icons/gnome to the GTK+ icon theme search path before trying to draw any icons. There is a function for this, gtk_icon_theme_append_search_path () :

https://developer.gnome.org/gtk3/stable/GtkIconTheme.html#gtk-icon-theme-append-search-path

so it shouldn't be too tricky. That, plus a package dependency on gnome-icon-theme-symbolic if anaconda doesn't have one already, should make things more robust (and, specifically, would fix it so the icons in anaconda show up on the MATE spin, which is the case that's currently broken).

Comment 1 Adam Williamson 2013-05-21 03:37:48 UTC
gtk_icon_theme_set_custom_theme () looks like a candidate too, I guess.

Comment 2 Adam Williamson 2013-05-21 17:37:06 UTC
Assigning to clumens, per bcl's suggestion.

Comment 3 Chris Lumens 2013-05-22 14:52:05 UTC
Please try updates=http://clumens.fedorapeople.org/965365.img and let me know if this fixes the issue.  Thanks.

Comment 4 Adam Williamson 2013-05-22 18:41:19 UTC
No, it doesn't seem to :/ I see the:

iconTheme.append_search_path("/usr/share/icons/gnome")

in ui/gui/__init__.py in that update, but anaconda on MATE is still missing almost all icons (same as before). Odd.

Comment 5 Chris Lumens 2013-05-22 20:01:22 UTC
Well, does the spin image even contain the icon files?  The requires has been on anaconda for a while, by the way.

Comment 6 Adam Williamson 2013-05-22 21:39:26 UTC
Yeah, it does, I checked that a long ways back in the process :) If I simply go into MATE control center and change the icon theme from MATE's to "GNOME", then the icons do show when I run anaconda.

Comment 7 Adam Williamson 2013-05-22 21:40:36 UTC
You could try simply setting the icon theme to GNOME in __init__.py, instead of including the GNOME theme's path in the search path? It seems like that's kind of what we want to do anyway: we specifically want anaconda to always use these GNOME symbolic icons, right? We wouldn't want to use some other theme's icons of the same name, if another theme happened to implement them, would we?

Comment 8 Chris Lumens 2013-05-23 17:51:22 UTC
Okay, let's try a different fix.  Can you hit the updates image linked in comment #3 again?  Thanks.

Comment 9 Adam Williamson 2013-05-23 18:50:01 UTC
*** Bug 964019 has been marked as a duplicate of this bug. ***

Comment 10 Kevin Kofler 2013-05-23 20:50:50 UTC
xsettings-kde already sets the fallback icon theme for GTK+ applications to GNOME. But it looks like setting the fallback theme is not sufficient, you need to actually CHANGE the primary theme, which sucks. GTK+ apps running under KDE should be picking up the KDE theme. This "fix" may be fine for Anaconda, but what about other GTK+ apps? I think this is actually a GTK+ bug, it needs to try the fallback theme before falling back to the builtin stock icons.

Comment 11 Kevin Kofler 2013-05-23 20:53:41 UTC
PS: I object to this "fix" of forcing the icon theme to GNOME. Applications should not be forcing the icon theme, they should be using the Oxygen theme if xsettings-kde tells them to, and Anaconda is no exception there.

Comment 12 Adam Williamson 2013-05-30 02:26:57 UTC
Note: this should be fixed in 19.30.1-1 too, I see it in the f19-branch commit log. Will confirm with that build.

http://koji.fedoraproject.org/koji/buildinfo?buildID=422886
https://admin.fedoraproject.org/updates/anaconda-19.30.1-1.fc19

Comment 13 Kevin Kofler 2013-05-30 15:34:40 UTC
And I persist that this is NOT an acceptable fix! Applications have no business hardcoding an icon theme (or any other theming normally imposed by the desktop environment).

This needs to be fixed in GTK+.

Comment 14 Adam Williamson 2013-05-30 16:21:56 UTC
Yes, we heard you the first time.

Comment 15 Kevin Kofler 2013-05-30 18:06:24 UTC
And yet you're ignoring it, and pushing ahead with this bogus "fix" that breaks desktop integration under any non-GNOME desktop.

Setting the icon theme affects ALL icons anywhere in Anaconda, including, e.g., the icons on buttons in dialogs (and yes, those are enabled by default under KDE). This sledgehammer "fix" affects much more than just the symbolic icons this bug was about.

Comment 16 Adam Williamson 2013-05-30 19:33:52 UTC
disregarding kk's objections for now, this change is verified to work as intended in 19.30.1. I see icons in MATE.

Comment 17 Kevin Kofler 2013-08-12 10:20:40 UTC
And of course the "fix" does not actually fix anything, the bug affects much more than just Anaconda (as I expected), see bug #995794. Told you so. This is a GTK+ bug, not an Ananconda bug.

Comment 18 Adam Williamson 2013-08-17 06:22:23 UTC
"And of course the "fix" does not actually fix anything"

Sure it does. It fixed anaconda. Anaconda was what we wanted fixed.