Re: [PATCH 05/12] volatiles.bbclass: add recipe

ChenQi
2013-01-25T09:13:24Z

On 01/24/2013 07:45 PM, Burton, Ross wrote:
> On 24 January 2013 11:37, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
>>>> +inherit ${@base_contains('DISTRO_FEATURES','sysvinit','volatiles_sysvinit','',d)}
>>> Does "inherit " work?
>>>
>>> I mean empty inherit when DISTRO_FEATURES don't contain sysvinit? IIRC
>>> it will fail to parse.
>> The above syntax does now work. A plain "inherit " won't but something
>> with an expression in does get handled correctly. It did not used to
>> work with older bitbake versions.
> The syntax works but that expression won't. If sysvinit was backfilled
> (pending patch from Marcin) because the distribution didn't pick
> sysvinit or systemd explicitly, the backfill happens after this
> expression is parsed.
>
> I'm testing a change where these tests happen against
> DISTRO_FEATURES_INITMAN instead now.
>
> Ross
>
> _

It seems that the backfill happens *before* this expression is parsed.

I tested it with DISTRO_FEATURES explicitly set in local.conf (basically
the default value, except that it contains no init manager). It worked
out well.

#
DISTRO ?= "poky"
DISTRO_FEATURES_LIBC_DEFAULT = "ipv4 ipv6 libc-backtrace libc-big-macros
libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \
libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt
libc-fmtmsg libc-fstab libc-ftraverse \
libc-getlogin libc-idn libc-inet-anl libc-libm
libc-libm-big libc-locales libc-locale-code \
libc-memusage libc-nis libc-nsswitch libc-rcmd
libc-rtld-debug libc-spawn libc-streams libc-sunrpc \
libc-utmp libc-utmpx libc-wordexp
libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \
libc-posix-wchar-io"
DISTRO_FEATURES_LIBC = "${DISTRO_FEATURES_LIBC_DEFAULT}"
DISTRO_FEATURES_LIBC_class-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}"
DISTRO_FEATURES = "alsa argp bluetooth ext2 irda largefile pcmcia
usbgadget usbhost wifi xattr nfs zeroconf pci 3g x11
${DISTRO_FEATURES_LIBC}"

I also added the following lines to volatiles.bbclass to examine the
DISTRO_FEATURES when parsing the volatiles.bbclass.

+python __anonymous() {
+ bb.error("DISTRO_FEATURES: %s" % d.getVar('DISTRO_FEATURES', True))
+}
+
inherit
${@base_contains('DISTRO_FEATURES','sysvinit','volatiles_sysvinit','',d)}

And the DISTRO_FEATURES contains 'sysvinit'.

ERROR: DISTRO_FEATURES: alsa argp bluetooth ext2 irda largefile pcmcia
usbgadget usbhost wifi xattr nfs zeroconf pci 3g x11 ipv4 ipv6
libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets
libc-charsets libc-crypt libc-crypt-ufc libc-db-aliases libc-envz
libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse libc-getlogin libc-idn
libc-inet-anl libc-libm libc-libm-big libc-locales libc-locale-code
libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug
libc-spawn libc-streams libc-sunrpc libc-utmp libc-utmpx libc-wordexp
libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc
libc-posix-wchar-io pulseaudio sysvinit largefile opengl multiarch

Best Regards,
Chen Qi

> ______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>