[OE-core] [PATCH 4/5] gtk-icon-cache: call postinst scriplet at do_rootfs time
Koen Kooi
koen at dominion.thruhere.net
Sun Aug 5 11:50:24 UTC 2012
Op 4 aug. 2012, om 21:37 heeft Andreas Müller <schnitzeltony at googlemail.com> het volgende geschreven:
> On Sat, Aug 4, 2012 at 7:14 PM, Koen Kooi <koen at dominion.thruhere.net> wrote:
>>
>> Op 4 aug. 2012, om 16:01 heeft Laurentiu Palcu <laurentiu.palcu at intel.com> het volgende geschreven:
>>
>>>
>>>
>>> On 08/04/2012 12:29 PM, Andreas Müller wrote:
>>>> On Sat, Aug 4, 2012 at 9:49 AM, Laurentiu Palcu
>>>> <laurentiu.palcu at intel.com> wrote:
>>>>>
>>>>>
>>>>> On 08/04/2012 02:22 AM, Andreas Müller wrote:
>>>>>> On Fri, Aug 3, 2012 at 10:19 PM, Laurentiu Palcu
>>>>>> <laurentiu.palcu at intel.com> wrote:
>>>>>>> This will improve first boot time because building the icon cache is
>>>>>>> done on host, with more processing power than the target.
>>>>>>>
>>>>>>> Signed-off-by: Laurentiu Palcu <laurentiu.palcu at intel.com>
>>>>>>> ---
>>>>>>> meta/classes/gtk-icon-cache.bbclass | 10 ++--------
>>>>>>> 1 file changed, 2 insertions(+), 8 deletions(-)
>>>>>>>
>>>>>>> diff --git a/meta/classes/gtk-icon-cache.bbclass b/meta/classes/gtk-icon-cache.bbclass
>>>>>>> index 01fb2f3..2d82c54 100644
>>>>>>> --- a/meta/classes/gtk-icon-cache.bbclass
>>>>>>> +++ b/meta/classes/gtk-icon-cache.bbclass
>>>>>>> @@ -1,18 +1,12 @@
>>>>>>> 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
>>>>>>> -fi
>>>>>>> -
>>>>>>> # Update the pixbuf loaders in case they haven't been registered yet
>>>>>>> GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/2.10.0/loaders gdk-pixbuf-query-loaders --update-cache
>>>>>>>
>>>>>>> -for icondir in /usr/share/icons/* ; do
>>>>>>> +for icondir in $D/usr/share/icons/* ; do
>>>>>>> if [ -d $icondir ] ; then
>>>>>>> gtk-update-icon-cache -fqt $icondir
>>>>>>> fi
>>>>>>> --
>>>>>>> 1.7.9.5
>>>>>>>
>>>>>> Long time ago there was a patch introducing gtk-icon-cache to be only
>>>>>> run once on the machine [1] and I am still using that. At that time I
>>>>>> was asked for a more generic approach. Now I ask:
>>>>>>
>>>>>> 1. Wouldn't it be better to have gtk-icon-cache run once even on host
>>>>> But this is what these patches do. Make gtk-update-icon-cache run on
>>>>> host, when the target rootfs is constructed, rather than running it on
>>>>> target, at first boot.
>>>> As far as I can see gtk-icon-cache is run for each package - how much
>>>> extra build time at do_rootfs is to expect?
>>> I didn't measure it. But I didn't notice do_roofts task taking a lot
>>> more than it took previously. However, host machines these days have
>>> lots of MHz under the hood, multiple cores and quite a lot of RAM,
>>> compared to target machines. So, I do believe that waiting for some
>>> extra tens of seconds at build time is a trade-off we can live with,
>>> compared to waiting entire minutes for the target's first boot.
>>
>> it's about 90 minutes on first boot for beaglebone :)
>
> And less than 3min on overo with the patches we sent (and my xfce
> image is full of gtk-icon-update). Don't misunderstand me: I agree on
> doing things like this on host if possible. But for me the main time
> waiting on a new image is do_rootfs and I just suggest to think about
> having these tasks run only once - but we can do this later or never.
> A bit off topic: As far as I can remember there were times when it was
> a no-go having gtk-native in oe-core. I hope they are over...
I never bought the arguments against gtk-native, so I hope common sense prevails and we can do the icon-cache stuff on the host.
More information about the Openembedded-core
mailing list