base: decode SRC_URI before adding implicit fetch dependencies

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.

(From OE-Core rev: a98a14844bc0b2ef8fc0426768fde40516279bf8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2015-11-20 15:34:52 +00:00
committed by Richard Purdie
parent eded9c26b3
commit 6ea39c26b7

View File

@@ -527,39 +527,40 @@ python () {
bb.note("INCLUDING " + pn + " as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted for HOSTTOOLS") bb.note("INCLUDING " + pn + " as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted for HOSTTOOLS")
srcuri = d.getVar('SRC_URI', True) srcuri = d.getVar('SRC_URI', True)
# Svn packages should DEPEND on subversion-native for uri in srcuri.split():
if "svn://" in srcuri: (scheme, _ , path) = bb.fetch.decodeurl(uri)[:3]
d.appendVarFlag('do_fetch', 'depends', ' subversion-native:do_populate_sysroot')
# Git packages should DEPEND on git-native # Svn packages should DEPEND on subversion-native
if "git://" in srcuri: if scheme == "svn":
d.appendVarFlag('do_fetch', 'depends', ' git-native:do_populate_sysroot') d.appendVarFlag('do_fetch', 'depends', ' subversion-native:do_populate_sysroot')
# Mercurial packages should DEPEND on mercurial-native # Git packages should DEPEND on git-native
elif "hg://" in srcuri: elif scheme == "git":
d.appendVarFlag('do_fetch', 'depends', ' mercurial-native:do_populate_sysroot') d.appendVarFlag('do_fetch', 'depends', ' git-native:do_populate_sysroot')
# OSC packages should DEPEND on osc-native # Mercurial packages should DEPEND on mercurial-native
elif "osc://" in srcuri: elif scheme == "hg":
d.appendVarFlag('do_fetch', 'depends', ' osc-native:do_populate_sysroot') d.appendVarFlag('do_fetch', 'depends', ' mercurial-native:do_populate_sysroot')
# *.lz4 should depends on lz4-native for unpacking # OSC packages should DEPEND on osc-native
# Not endswith because of "*.patch.lz4;patch=1". Need bb.fetch.decodeurl in future elif scheme == "osc":
if '.lz4' in srcuri: d.appendVarFlag('do_fetch', 'depends', ' osc-native:do_populate_sysroot')
d.appendVarFlag('do_unpack', 'depends', ' lz4-native:do_populate_sysroot')
# *.xz should depends on xz-native for unpacking # *.lz4 should DEPEND on lz4-native for unpacking
# Not endswith because of "*.patch.xz;patch=1". Need bb.fetch.decodeurl in future if path.endswith('.lz4'):
if '.xz' in srcuri: d.appendVarFlag('do_unpack', 'depends', ' lz4-native:do_populate_sysroot')
d.appendVarFlag('do_unpack', 'depends', ' xz-native:do_populate_sysroot')
# unzip-native should already be staged before unpacking ZIP recipes # *.xz should DEPEND on xz-native for unpacking
if ".zip" in srcuri: elif path.endswith('.xz'):
d.appendVarFlag('do_unpack', 'depends', ' unzip-native:do_populate_sysroot') d.appendVarFlag('do_unpack', 'depends', ' xz-native:do_populate_sysroot')
# file is needed by rpm2cpio.sh # .zip should DEPEND on unzip-native for unpacking
if ".src.rpm" in srcuri: elif path.endswith('.zip'):
d.appendVarFlag('do_unpack', 'depends', ' file-native:do_populate_sysroot') d.appendVarFlag('do_unpack', 'depends', ' unzip-native:do_populate_sysroot')
# file is needed by rpm2cpio.sh
elif path.endswith('.src.rpm'):
d.appendVarFlag('do_unpack', 'depends', ' file-native:do_populate_sysroot')
set_packagetriplet(d) set_packagetriplet(d)