[OE-core] [RFC 4/7] gtk-icon-cache: run the icon generation at rootfs time

Khem Raj raj.khem at gmail.com
Wed Sep 19 13:28:44 UTC 2012


On Wed, Sep 19, 2012 at 4:49 AM, Laurentiu Palcu
<laurentiu.palcu at intel.com> wrote:
> This change will allow for the icon cache generation at rootfs time and
> only once, at the end. So, even though there will be many packages
> depending on gtk+, the icon cache generation will be done once.
> Hopefully, this will lower the target's first boot time significantly
> by using the power of the host machine to generate the cache.
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu at intel.com>
> ---
>  meta/classes/gtk-icon-cache.bbclass |   21 +++++++++++++++++----
>  1 file changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/meta/classes/gtk-icon-cache.bbclass b/meta/classes/gtk-icon-cache.bbclass
> index 01fb2f3..f65b11c 100644
> --- a/meta/classes/gtk-icon-cache.bbclass
> +++ b/meta/classes/gtk-icon-cache.bbclass
> @@ -1,12 +1,24 @@
>  FILES_${PN} += "${datadir}/icons/hicolor"
>
> -DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']}"
> +DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk+-native"
>
> -# This could run on the host as icon cache files are architecture independent,
> -# but there is no gtk-update-icon-cache built natively.
>  gtk_icon_cache_postinst() {
>  if [ "x$D" != "x" ]; then
> -        exit 1
> +    if [ ! -f $INTERCEPT_DIR/update_icon_cache ]; then
> +        cat << "EOF" > $INTERCEPT_DIR/update_icon_cache
> +#!/bin/bash -x

Do you really need bash for this script to run ? if so then can it be
written so that it works on posixly shells.

> +
> +# Update the native pixbuf loader's cache
> +gdk-pixbuf-query-loaders --update-cache
> +
> +for icondir in $D/usr/share/icons/* ; do
> +    if [ -d $icondir ] ; then
> +        gtk-update-icon-cache -fqt  $icondir
> +    fi
> +done
> +EOF
> +    fi
> +    exit 0
>  fi
>
>  # Update the pixbuf loaders in case they haven't been registered yet
> @@ -17,6 +29,7 @@ for icondir in /usr/share/icons/* ; do
>          gtk-update-icon-cache -fqt  $icondir
>      fi
>  done
> +
>  }
>
>  gtk_icon_cache_postrm() {
> --
> 1.7.9.5
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list