[OE-core] [PATCH 1/1] insane: add checking to standardize how .bbappend files do FILESEXTRAPATHS

Gary Thomas gary at mlbassoc.com
Fri Jul 25 17:25:32 UTC 2014


On 2014-07-22 21:33, Hongxu Jia wrote:
> When adding patches or config files from bbappend files, it requires
> the use of FILESEXTRAPATHS, which has been an issue and failure point
> for people starting to work with bitbake and oe-core.
>
> We add checking to standardize how to use FILESEXTRAPATHS. Only the
> format of:
>    FILESEXTRAPATHS_append := ":${THISDIR}/Your_Files_Path" or
>    FILESEXTRAPATHS_prepend := "${THISDIR}/Your_Files_Path:"
> is acceptable.
>
> [YOCTO #5412]
>
> Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
> ---
>   meta/classes/insane.bbclass | 13 +++++++++++++
>   meta/classes/utils.bbclass  |  2 ++
>   meta/conf/bitbake.conf      |  2 ++
>   3 files changed, 17 insertions(+)
>
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index b26216e..6b1c9ad 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -1022,6 +1022,19 @@ python () {
>       # Check various variables
>       ###########################################################################
>
> +    # Checking ${FILESEXTRAPATHS}
> +    extrapaths = (d.getVar("FILESEXTRAPATHS", True) or "")
> +    if '__default' not in extrapaths.split(":"):
> +        msg = "FILESEXTRAPATHS-variable, must always use _prepend (or _append)\n"
> +        msg += "type of assignment, and don't forget the colon.\n"
> +        msg += "Please assign it with the format of:\n"
> +        msg += "  FILESEXTRAPATHS_append := \":${THISDIR}/Your_Files_Path\" or\n"
> +        msg += "  FILESEXTRAPATHS_prepend := \"${THISDIR}/Your_Files_Path:\"\n"
> +        msg += "in your bbappend file\n\n"
> +        msg += "Your incorrect assignment is:\n"
> +        msg += "%s\n" % extrapaths
> +        bb.fatal(msg)

It sure would have been nice (even polite?) to make this a warning when first
added.  As is, it's going to break a lot of builds and it will be very tedious
to fix since the parser will die on the first one it finds :-(

> +
>       if d.getVar('do_stage', True) is not None:
>           bb.fatal("Legacy staging found for %s as it has a do_stage function. This will need conversion to a do_install or often simply removal to work with OE-core" % d.getVar("FILE", True))
>
> diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
> index 0ee13e0..0f2a484 100644
> --- a/meta/classes/utils.bbclass
> +++ b/meta/classes/utils.bbclass
> @@ -312,6 +312,8 @@ def explode_deps(s):
>   def base_set_filespath(path, d):
>       filespath = []
>       extrapaths = (d.getVar("FILESEXTRAPATHS", True) or "")
> +    # Remove default flag which was used for checking
> +    extrapaths = extrapaths.replace("__default:", "")
>       # Don't prepend empty strings to the path list
>       if extrapaths != "":
>           path = extrapaths.split(":") + path
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index f4870d5..6a0cf7a 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -311,6 +311,8 @@ FILES_${PN}-locale = "${datadir}/locale"
>   FILE_DIRNAME = "${@os.path.dirname(d.getVar('FILE'))}"
>   # FILESPATH is set in base.bbclass
>   #FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/${BP}:${FILE_DIRNAME}/${BPN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
> +# This default was only used for checking
> +FILESEXTRAPATHS ?= "__default:"
>
>   ##################################################################
>   # General work and output directories for the build system.
>

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the Openembedded-core mailing list