| Submitter | Laurentiu Palcu |
|---|---|
| Date | Feb. 5, 2013, 9:34 a.m. |
| Message ID | <a306516e1af55efcd93563779e389448e16c97d3.1360055640.git.laurentiu.palcu@intel.com> |
| Download | mbox | patch |
| Permalink | /patch/44061/ |
| State | Accepted |
| Commit | 0c12f7fb3c2c42e5b633682bb1277b943ac19ea6 |
| Headers | show |
Comments
On Thu, 2013-02-07 at 16:38 +0100, Marcin Juszkiewicz wrote: > W dniu 05.02.2013 10:34, Laurentiu Palcu pisze: > > All font packages should inherit this class in order to generate the > > proper postinst/postrm scriptlets. > > > > The scriptlets will actually create a host intercept hook that will be > > executed at the end, at do_rootfs time, after all packages have been > > installed. This is good when there are many font packages. > > > > [YOCTO #2923] > > > > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> > > --- > > meta/classes/fontcache.bbclass | 47 ++++++++++++++++++++++++++++++++++++++++ > > > +${@qemu_run_binary(d, '$D', '/usr/bin/fc-cache')} --sysroot=$D >/dev/null 2>&1 > > What about platform which do not have qemu support? Like AArch64... > > | Configuring libpcre-staticdev. > | Building from feeds activated! > | Running intercept scripts: > | > Executing update_font_cache > | ERROR: Function failed: do_rootfs (see > /home/hrw/HDD/devel/canonical/aarch64/openembedded/build/tmp-eglibc/work/genericarmv8-oe-linux/linaro-image-sdk/1.0-r2/temp/log.do_rootfs.23211 > for further information) Ideally the intercept code should fall back to running the postinst on the target if qemu isn't available. Patches welcome to make that happen. The hard part is this is an "allarch" recipe so we can't disable this conditionally on aarch64. We can disable all intercept scripts I guess. Or we make these packages arch specific on aarch64 I guess. Cheers, Richard
On Thu, 2013-02-07 at 16:38 +0100, Marcin Juszkiewicz wrote: >> +${@qemu_run_binary(d, '$D', '/usr/bin/fc-cache')} --sysroot=$D >/dev/null 2>&1 > What about platform which do not have qemu support? Like AArch64... There are other places in the oe-core tree that already require working qemu support so I don't think this is a qualitatively new issue. I suspect that in the long term, qemu is going to become another tool that needs targetting to any new architecture, just like gcc, binutils, glibc, linux, javascriptcore and so on. On the other hand, that "/usr/bin" looks a bit unwholesome to me. :-} p.
Patch
diff --git a/meta/classes/fontcache.bbclass b/meta/classes/fontcache.bbclass new file mode 100644 index 0000000..8381735 --- /dev/null +++ b/meta/classes/fontcache.bbclass @@ -0,0 +1,47 @@ +# +# This class will generate the proper postinst/postrm scriptlets for font +# packages. +# + +DEPENDS += "qemu-native" +inherit qemu + +FONT_PACKAGES ??= "${PN}" + +fontcache_common() { +if [ "x$D" != "x" ] ; then + if [ ! -f $INTERCEPT_DIR/update_font_cache ]; then + cat << "EOF" > $INTERCEPT_DIR/update_font_cache +#!/bin/sh + +${@qemu_run_binary(d, '$D', '/usr/bin/fc-cache')} --sysroot=$D >/dev/null 2>&1 + +if [ $? -ne 0 ]; then + exit 1 +fi + +EOF + fi + exit 0 +fi + +fc-cache +} + +python populate_packages_append() { + font_pkgs = d.getVar('FONT_PACKAGES', True).split() + + for pkg in font_pkgs: + bb.note("adding fonts postinst and postrm scripts to %s" % pkg) + postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True) + if not postinst: + postinst = '#!/bin/sh\n' + postinst += d.getVar('fontcache_common', True) + d.setVar('pkg_postinst_%s' % pkg, postinst) + + postrm = d.getVar('pkg_postrm_%s' % pkg, True) or d.getVar('pkg_postrm', True) + if not postrm: + postrm = '#!/bin/sh\n' + postrm += d.getVar('fontcache_common', True) + d.setVar('pkg_postrm_%s' % pkg, postrm) +}
All font packages should inherit this class in order to generate the proper postinst/postrm scriptlets. The scriptlets will actually create a host intercept hook that will be executed at the end, at do_rootfs time, after all packages have been installed. This is good when there are many font packages. [YOCTO #2923] Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> --- meta/classes/fontcache.bbclass | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 meta/classes/fontcache.bbclass