From 3360528ed1615dff05dddca99d26fc67fa54e77b Mon Sep 17 00:00:00 2001
From: Marcin Juszkiewicz <hrw@openembedded.org>
Date: Sat, 20 May 2006 12:05:46 +0000
Subject: base.bbclass: add support for 'min/max' date for patches - SRC_URI =
 "file//something.patch;patch=1;mindate=20050312;maxdate=20060302   means that
 patch should be applied if SRCDATE > 20050312 and SRCDATE < 20060302

---
 classes/base.bbclass | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

(limited to 'classes')

diff --git a/classes/base.bbclass b/classes/base.bbclass
index 5f0e0d2fce..683b9e0d2a 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -475,6 +475,34 @@ python base_do_patch() {
 		else:
 			pname = os.path.basename(unpacked)
 
+		if "mindate" in parm:
+			mindate = parm["mindate"]
+		else:
+			mindate = 0
+
+		if "maxdate" in parm:
+			maxdate = parm["maxdate"]
+		else:
+			maxdate = bb.data.getVar('DATE', d, 1)
+
+		pn = bb.data.getVar('PN', d, 1)
+		srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1)
+
+		if not srcdate:
+			srcdate = bb.data.getVar('SRCDATE', d, 1)
+
+		if srcdate == "now": 
+			srcdate = bb.data.getVar('DATE', d, 1)
+
+		if (maxdate < srcdate) or (mindate > srcdate):
+			if (maxdate < srcdate):
+				bb.note("Patch '%s' is outdated" % pname)
+
+			if (mindate > srcdate):
+				bb.note("Patch '%s' is predated" % pname)
+
+			continue
+
 		bb.note("Applying patch '%s'" % pname)
 		bb.data.setVar("do_patchcmd", bb.data.getVar("PATCHCMD", d, 1) % (pnum, pname, unpacked), d)
 		bb.data.setVarFlag("do_patchcmd", "func", 1, d)
-- 
cgit v1.2.3