From patchwork Tue Dec 21 17:19:59 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: patch.bbclass: conditional patch-tool dependency Date: Tue, 21 Dec 2010 17:19:59 -0000 From: Bernhard Reutner-Fischer X-Patchwork-Id: 100 Message-Id: <1292951999-18969-2-git-send-email-rep.dot.nop@gmail.com> To: openembedded-devel@lists.openembedded.org only depend do_patch on patch-tool if recipe references any patch Signed-off-by: Bernhard Reutner-Fischer Acked-by: Leon Woestenberg --- classes/patch.bbclass | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff --git a/classes/patch.bbclass b/classes/patch.bbclass index 7629e9a..1cfe24c 100644 --- a/classes/patch.bbclass +++ b/classes/patch.bbclass @@ -38,7 +38,7 @@ python patch_do_patch() { src_uri = d.getVar("SRC_URI", True).split() srcurldata = bb.fetch.init(src_uri, d, True) workdir = bb.data.getVar('WORKDIR', d, 1) - for url in d.getVar("SRC_URI", True).split(): + for url in src_uri: urldata = srcurldata[url] local = urldata.localpath @@ -120,8 +120,25 @@ python patch_do_patch() { bb.fatal(str(exc)) } +def patch_deps(d): + import oe.unpack + + src_uri = d.getVar("SRC_URI", True).split() + srcurldata = bb.fetch.init(src_uri, d, True) + for url in src_uri: + urldata = srcurldata[url] + local = urldata.localpath + if local: + base, ext = os.path.splitext(os.path.basename(local)) + if ext in ('.gz', '.bz2', '.Z', '.xz'): + local = base + if oe.unpack.is_patch(local, urldata.parm): + return "${PATCHDEPENDENCY}" + return "" + + addtask patch after do_unpack do_patch[dirs] = "${WORKDIR}" -do_patch[depends] = "${PATCHDEPENDENCY}" +do_patch[depends] = "${@patch_deps(d)}" EXPORT_FUNCTIONS do_patch