From 6f97a5881773a20ded15041b36c511881c9bc579 Mon Sep 17 00:00:00 2001
From: Richard Purdie <rpurdie@linux.intel.com>
Date: Mon, 27 Oct 2008 18:46:51 +0000
Subject: classes/conf: Handle Distro PR change in sanity.bbclass

This patch:
* Moves the ABI variables into a new abi_version.conf (like Poky).
* Renames SANITY_ABI to OELAYOUT_ABI since it has uses outside
  sanity.bbclass and sanity.conf.
* Adds checks to sanity.bbclass so the user is notified when DISTRO_PR
  changes in a similar way to the OELAYOUT_ABI versions.
---
 classes/sanity.bbclass | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

(limited to 'classes')

diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass
index b925d05e18..c9effb5596 100644
--- a/classes/sanity.bbclass
+++ b/classes/sanity.bbclass
@@ -140,7 +140,7 @@ def check_sanity(e):
 	#
 	# Check the 'ABI' of TMPDIR
 	#
-	current_abi = data.getVar('SANITY_ABI', e.data, True)
+	current_abi = data.getVar('OELAYOUT_ABI', e.data, True)
 	abifile = data.getVar('SANITY_ABIFILE', e.data, True)
 	if os.path.exists(abifile):
 		f = file(abifile, "r")
@@ -156,6 +156,22 @@ def check_sanity(e):
 		f.write(current_abi)
 	f.close()
 
+	#
+	# Check the Distro PR value didn't change
+	#
+	distro_pr = data.getVar('DISTRO_PR', e.data, True)
+	prfile = data.getVar('SANITY_PRFILE', e.data, True)
+	if os.path.exists(prfile):
+		f = file(prfile, "r")
+		pr = f.read().strip()
+		if (pr != distro_pr):
+			# Code to convert from one ABI to another could go here if possible.
+			messages = messages + "Error, DISTRO_PR has changed (%s to %s) which means all packages need to rebuild. Please remove your TMPDIR so this can happen. For autobuilder setups you can avoid this by using a TMPDIR that include DISTRO_PR in the path.\n" % (pr, distro_pr)
+	else:
+		f = file(prfile, "w")
+		f.write(distro_pr)
+	f.close()
+
 	if messages != "":
 		raise_sanity_error(messages)
 
-- 
cgit v1.2.3