summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDengke Du <dengke.du@windriver.com>2016-11-28 12:37:35 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-01-07 17:07:57 +0000
commit7d02e4eaa09d5e327f23c13b4ac301a41408c5f3 (patch)
treea594cdc71eacffa2bd54b14e20cd02a1308658a9
parent88e11f329561a5f865b88919f1487439a233341c (diff)
downloadpoky-7d02e4eaa09d5e327f23c13b4ac301a41408c5f3.tar.gz
archiver.bbclass: fix do_ar_original error for matchbox-desktop
Error: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERROR: matchbox-desktop-2.1-r0 do_ar_original: Can not determine archive names for original source because 'name' URL parameter is unset in more than one URL. Add it to at least one of these: git://git.yoctoproject.org/matchbox-desktop-2 file://vfolders/%2A ERROR: matchbox-desktop-2.1-r0 do_ar_original: Function failed: do_ar_original ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In function do_ar_original, when recipes have more than one source, it added the "name" URL parameter as suffix to identify the created tarball. But the URL type "file://" that we always used to represent a series of patches, it didn't have "name" parameter, so it failed. So set "name" to the folder name to identify the created tarball, for example: In matchbox-desktop bb file, the SRC_URI contains: file://vfloders/* We set "name" to "vfolders" to identify the created tarball. In connman-gnome bb file, the SRC_URI contains: file://images/* We set "name" to "images" to identify the created tarball. (From OE-Core rev: 0af636c635391b30c987dedeffe597ef4f8a1ed8) (From OE-Core rev: 9dd945d083ee742dcb75d24d4be40468121008a6) (From OE-Core rev: 113de7ab1e61997147b4b292b7de162d44296d59) Signed-off-by: Dengke Du <dengke.du@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/archiver.bbclass16
1 files changed, 11 insertions, 5 deletions
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index 05a7996676..78c6245553 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -171,12 +171,18 @@ python do_ar_original() {
171 # to be set when using the git fetcher, otherwise SRCREV cannot 171 # to be set when using the git fetcher, otherwise SRCREV cannot
172 # be set separately for each URL. 172 # be set separately for each URL.
173 params = bb.fetch2.decodeurl(url)[5] 173 params = bb.fetch2.decodeurl(url)[5]
174 type = bb.fetch2.decodeurl(url)[0]
175 location = bb.fetch2.decodeurl(url)[2]
174 name = params.get('name', '') 176 name = params.get('name', '')
175 if name in tarball_suffix: 177 if type.lower() == 'file':
176 if not name: 178 name_tmp = location.rstrip("*").rstrip("/")
177 bb.fatal("Cannot determine archive names for original source because 'name' URL parameter is unset in more than one URL. Add it to at least one of these: %s %s" % (tarball_suffix[name], url)) 179 name = os.path.basename(name_tmp)
178 else: 180 else:
179 bb.fatal("Cannot determine archive names for original source because 'name=' URL parameter '%s' is used twice. Make it unique in: %s %s" % (tarball_suffix[name], url)) 181 if name in tarball_suffix:
182 if not name:
183 bb.fatal("Cannot determine archive names for original source because 'name' URL parameter is unset in more than one URL. Add it to at least one of these: %s %s" % (tarball_suffix[name], url))
184 else:
185 bb.fatal("Cannot determine archive names for original source because 'name=' URL parameter '%s' is used twice. Make it unique in: %s %s" % (tarball_suffix[name], url))
180 tarball_suffix[name] = url 186 tarball_suffix[name] = url
181 create_tarball(d, tmpdir + '/.', name, ar_outdir) 187 create_tarball(d, tmpdir + '/.', name, ar_outdir)
182 188