[OE-core] what is meaning of "SRC_URI_append_whatever +=" ??

Richard Purdie richard.purdie at linuxfoundation.org
Wed Mar 21 12:08:43 UTC 2012


On Wed, 2012-03-21 at 10:51 +0000, Graeme Gregory wrote:
> On 21/03/2012 10:46, Koen Kooi wrote:
> > Op 21 mrt. 2012, om 11:28 heeft Robert P. J. Day het volgende geschreven:
> >
> >> On Wed, 21 Mar 2012, Robert P. J. Day wrote:
> >>
> >>>  still perusing the very basics of oe-core and grepping madly, came
> >>> across the following oddity:
> >>>
> >>> $ grep -r SRC_URI_append *
> >>> ... snip ...
> >>> bitbake/doc/manual/usermanual.xml:SRC_URI_append_1.0.7+ = "file://some_patch_which_the_new_versions_need.patch;patch=1"</screen></para>
> >>> meta/recipes-support/gmp/gmp_5.0.4.bb:SRC_URI_append += "file://use-includedir.patch \
> >>> meta/recipes-support/libcroco/libcroco_0.6.3.bb:SRC_URI_append = " file://croco.patch;apply=yes "
> >>> ... snip ...
> >>>
> >>>  AIUI, there are two (common) variations for extending SRC_URI.  the
> >>> straightforward unconditional way:
> >>>
> >>>  SRC_URI += ... blah blah ...
> >>>
> >>> or if you need to make it conditional, then there's
> >>>
> >>>  SRC_URI_append_thingy = "whatever"
> >>>
> >>> so what's with the latter two entries above?
> >>>
> >>> meta/recipes-support/gmp/gmp_5.0.4.bb:SRC_URI_append += "file://use-includedir.patch \
> >>> meta/recipes-support/libcroco/libcroco_0.6.3.bb:SRC_URI_append = " file://croco.patch;apply=yes "
> >>>
> >>>  is there some subtlety i'm missing here?  why would one ever use
> >>> either of:
> >>>
> >>>  SRC_URI_append += "..."               (looks redundant)
> >>>  SRC_URI_append = "..."                (why not just SRC_URI +=?)
> >>>
> >>> can i just assume those are typoes?
> >>  following up on my own post, i decided to scan the entire oe-core
> >> tree:
> >>
> >> $ grep -r "_append +=" *
> >> meta/recipes-support/gmp/gmp_5.0.4.bb:SRC_URI_append += "file://use-includedir.patch \
> >> meta/recipes-core/eglibc/eglibc-package.inc:FILES_${PN}-dev_append += "${bindir}/rpcgen ${libdir}/*_nonshared.a \
> >> meta/recipes-core/eglibc/eglibc-package.inc:FILES_${PN}-staticdev_append += "${libdir}/*.a ${base_libdir}/*.a"
> >> meta/recipes-graphics/xorg-lib/libxp_1.0.1.bb:CFLAGS_append += " -I ${S}/include/X11/XprintUtil -I ${S}/include/X11/extensions"
> >> $
> >>
> >>  and i thought i'd look for another pattern as well:
> >>
> >> $ grep -r "_append_.*+=" *
> >> meta/recipes-graphics/tslib/tslib_1.0.bb:SRC_URI_append_qemumips += " file://32bitBE-support.patch"
> >> meta/recipes-graphics/tslib/tslib_1.0.bb:SRC_URI_append_qemuppc += " file://32bitBE-support.patch"
> >> meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb:SRC_URI_append_poky += " file://owl-menu.patch;apply=yes "
> >> $
> >>
> >>  of course, if all of the above is perfectly valid, i'm going to be
> >> embarrassed.
> >
> > AFAICT '_append +=' is completely bogus.
> >
> 
> I beleive its valid to do
> 
> BLAH_append = "spanner"
> BLAH_append += "toolbox"
> 
> then final result is BLAH_append variable is "spanner toolbox" then the
> overrides happen.

However you will get the same result with:

BLAH_append = "spanner"
BLAH_append = "toolbox"

since _append values do stack. Also, it would be "spannertoolbox", just
to be really correct :).

So the += is confusing but harmless.

I'd also point out that:

BLAH_append_qemumips = "spanner"
BLAH_append_qemumips += "toolbox"

is different to:

BLAH_append_qemumips = "spanner"
BLAH_append_qemumips = "toolbox"

since the above will not stack, only raw _append values do.

Cheers,

Richard








More information about the Openembedded-core mailing list