[OE-core] [PATCH 1/2] base: decode SRC_URI before adding implicit fetch dependencies

Burton, Ross ross.burton at intel.com
Mon Nov 23 10:35:19 UTC 2015


These don't actually work, v2 incoming.

Ross

On 21 November 2015 at 18:44, Ross Burton <ross.burton at intel.com> wrote:

> To avoid false positives such as a SRC_URI for http://foo.xz/foo.zip
> gaining a
> dependnecy on xz-native decode the URI so that precise tests can be done.
>
> Signed-off-by: Ross Burton <ross.burton at intel.com>
> ---
>  meta/classes/base.bbclass | 25 ++++++++++++-------------
>  1 file changed, 12 insertions(+), 13 deletions(-)
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index eb5edef..c7db81a 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -527,38 +527,37 @@ python () {
>                      bb.note("INCLUDING " + pn + " as buildable despite
> INCOMPATIBLE_LICENSE because it has been whitelisted for HOSTTOOLS")
>
>      srcuri = d.getVar('SRC_URI', True)
> +    (scheme, _ , path) = bb.fetch.decodeurl(srcuri)[:3]
>      # Svn packages should DEPEND on subversion-native
> -    if "svn://" in srcuri:
> +    if scheme == "svn":
>          d.appendVarFlag('do_fetch', 'depends', '
> subversion-native:do_populate_sysroot')
>
>      # Git packages should DEPEND on git-native
> -    if "git://" in srcuri:
> +    elif scheme == "git":
>          d.appendVarFlag('do_fetch', 'depends', '
> git-native:do_populate_sysroot')
>
>      # Mercurial packages should DEPEND on mercurial-native
> -    elif "hg://" in srcuri:
> +    elif scheme == "hg":
>          d.appendVarFlag('do_fetch', 'depends', '
> mercurial-native:do_populate_sysroot')
>
>      # OSC packages should DEPEND on osc-native
> -    elif "osc://" in srcuri:
> +    elif scheme == "osc"
>          d.appendVarFlag('do_fetch', 'depends', '
> osc-native:do_populate_sysroot')
>
> -    # *.lz4 should depends on lz4-native for unpacking
> -    # Not endswith because of "*.patch.lz4;patch=1". Need
> bb.fetch.decodeurl in future
> -    if '.lz4' in srcuri:
> +    # *.lz4 should DEPEND on lz4-native for unpacking
> +    if path.endswith('.lz4'):
>          d.appendVarFlag('do_unpack', 'depends', '
> lz4-native:do_populate_sysroot')
>
> -    # *.xz should depends on xz-native for unpacking
> -    # Not endswith because of "*.patch.xz;patch=1". Need
> bb.fetch.decodeurl in future
> -    if '.xz' in srcuri:
> +    # *.xz should DEPEND on xz-native for unpacking
> +    elif path.endswith('.xz'):
>          d.appendVarFlag('do_unpack', 'depends', '
> xz-native:do_populate_sysroot')
>
> -    # unzip-native should already be staged before unpacking ZIP recipes
> -    if ".zip" in srcuri:
> +    # .zip should DEPEND on unzip-native for unpacking
> +    elif path.endswith('.zip'):
>          d.appendVarFlag('do_unpack', 'depends', '
> unzip-native:do_populate_sysroot')
>
>      # file is needed by rpm2cpio.sh
> -    if ".src.rpm" in srcuri:
> +    elif path.endswith('.src.rpm'):
>          d.appendVarFlag('do_unpack', 'depends', '
> file-native:do_populate_sysroot')
>
>      set_packagetriplet(d)
> --
> 2.4.9 (Apple Git-60)
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20151123/26358391/attachment-0002.html>


More information about the Openembedded-core mailing list