[opensuse-packaging] Icon cache
Icon Theme Specification says "any implementation that does caching is required to look at the mtime of the toplevel icon directories when doing a cache lookup, unless it already did so less than 5 seconds ago" (http://standards.freedesktop.org/icon-theme-spec/latest/ar01s08.html). GTK seems to have the extra requirement of needing to run gtk-update-icon-cache after every icon installation. We don't do that because of bnc#395056, even if it causes the kind of problems described at bnc#398351. Being a happy KDE user I'm not going to worry too much about the GTK problem (but from http://lists.opensuse.org/opensuse-packaging/2010-06/msg00023.html I understand that what's needed is http://www.rpm.org/ticket/111... or perhaps GTK is the thing that should be fixed). The thing is that we neither "change the mtime of the the toplevel directory where it changed the theme". http://en.opensuse.org/Packaging/Scriptlet_Snippets says SuSEconfig does the work, but as seen at bnc#365649 zypper will never run SuSEconfig. I'm not very sure about how KDE works (neither about how to check if the icon cache has been updated). It works even without changing the mtime of the the toplevel directory? It's my understanding that at KDE start kbuildsycoca4 is run and then any new change is detected by kded. They take responsability of the icon cache, true? I suppose kded doesn't looks at the mtime of the toplevel directory since it knows exactly which icons have been added/removed/modified and so it can do a more efficient cache update. But kbuildsycocac4 checks the mtime of the toplevel directory or it recreates the cache unconditionally at every KDE start? And what about other DEs? What the LXDE people has to say about this? The final question would be, should we touch directories in packages that add new icons? Fedora is doing that (http://fedoraproject.org/wiki/Packaging/ScriptletSnippets). Between, looking at Fedora it seems they understand "toplevel directory" as the theme directory (%{_datadir}/icons/hicolor instead of %{_datadir}/icons), it's that correct? -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Tuesday 08 of June 2010, Cristian Morales Vega wrote:
Icon Theme Specification says "any implementation that does caching is required to look at the mtime of the toplevel icon directories when doing a cache lookup, unless it already did so less than 5 seconds ago" (http://standards.freedesktop.org/icon-theme-spec/latest/ar01s08.html). ... I'm not very sure about how KDE works (neither about how to check if the icon cache has been updated). It works even without changing the mtime of the the toplevel directory? It's my understanding that at KDE start kbuildsycoca4 is run and then any new change is detected by kded. They take responsability of the icon cache, true? I suppose kded doesn't looks at the mtime of the toplevel directory since it knows exactly which icons have been added/removed/modified and so it can do a more efficient cache update. But kbuildsycocac4 checks the mtime of the toplevel directory or it recreates the cache unconditionally at every KDE start?
The class used for icon caching checks all directories, not just the toplevel one, so it is always safe. There shouldn't be any problems with KDE, regardless of how the icons are handled on openSUSE.
Between, looking at Fedora it seems they understand "toplevel directory" as the theme directory (%{_datadir}/icons/hicolor instead of %{_datadir}/icons), it's that correct?
That should be correct. -- Lubos Lunak openSUSE Boosters team, KDE developer l.lunak@suse.cz , l.lunak@kde.org -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (2)
-
Cristian Morales Vega
-
Lubos Lunak