From 1c99d74a862f25e23ea6465fab7ddc9ce74d6974 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 13 Dec 2016 20:09:37 +1300 Subject: classes/base: fix license file checksumming when source not under TMPDIR With the changes to the code for extracting source for a recipe, we are properly executing the tasks for a recipe, which means their stamps (and therefore signatures) are important. When running devtool extract on the lsof recipe I noticed that do_fetch and do_unpack were executing a second time when we called for do_patch, and this turned out to be because LIC_FILES_CHKSUM in that recipe contains an entry which is an absolute path (has ${S} at the start). Normally this wouldn't be an issue since S is under TMPDIR and thus the existing code would ignore it, however devtool's extraction code extracts to a temporary directory which is not under TMPDIR; the result was the path to this file was not being ignored and the second time around when the license file had been extracted it was incorporated into the signature. We don't want this, so explicitly exclude S as well as B and WORKDIR for good measure. Signed-off-by: Paul Eggleton Signed-off-by: Ross Burton --- meta/classes/base.bbclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'meta') diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 024fe4331a..19673e6913 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -98,6 +98,9 @@ def get_lic_checksum_file_list(d): filelist = [] lic_files = d.getVar("LIC_FILES_CHKSUM", True) or '' tmpdir = d.getVar("TMPDIR", True) + s = d.getVar("S", True) + b = d.getVar("B", True) + workdir = d.getVar("WORKDIR", True) urls = lic_files.split() for url in urls: @@ -109,7 +112,7 @@ def get_lic_checksum_file_list(d): raise bb.fetch.MalformedUrl(url) if path[0] == '/': - if path.startswith(tmpdir): + if path.startswith((tmpdir, s, b, workdir)): continue filelist.append(path + ":" + str(os.path.exists(path))) except bb.fetch.MalformedUrl: -- cgit v1.2.3