From 22429b6137dd2d84dcc501d439dcebc407371304 Mon Sep 17 00:00:00 2001
From: Richard Purdie <rpurdie@linux.intel.com>
Date: Thu, 17 Dec 2009 20:35:08 +0000
Subject: base.bbclass: Partially sync branch/scm handling functions with
 OE.dev

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
---
 meta/classes/base.bbclass | 72 +++++++++++++++++++++++++----------------------
 1 file changed, 38 insertions(+), 34 deletions(-)

(limited to 'meta')

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index ff0e42a4f..363932090 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -720,14 +720,44 @@ python base_do_unpack() {
 			raise bb.build.FuncFailed()
 }
 
+METADATA_BRANCH ?= "${@base_detect_branch(d)}"
+METADATA_REVISION ?= "${@base_detect_revision(d)}"
+
+def base_detect_revision(d):
+    path = base_get_scmbasepath(d)
+
+	scms = [base_get_metadata_git_revision, \
+			base_get_metadata_svn_revision]
+
+	for scm in scms:
+		rev = scm(path, d)
+		if rev <> "<unknown>":
+			return rev
+
+	return "<unknown>"	
+
+def base_detect_branch(d):
+    path = base_get_scmbasepath(d)
+
+	scms = [base_get_metadata_git_branch]
+
+	for scm in scms:
+		rev = scm(path, d)
+		if rev <> "<unknown>":
+			return rev.strip()
+
+	return "<unknown>"	
+	
+	
+
 def base_get_scmbasepath(d):
 	path_to_bbfiles = bb.data.getVar( 'BBFILES', d, 1 ).split()
 	return path_to_bbfiles[0][:path_to_bbfiles[0].rindex( "packages" )]
 
-def base_get_metadata_monotone_branch(d):
+def base_get_metadata_monotone_branch(path, d):
 	monotone_branch = "<unknown>"
 	try:
-		monotone_branch = file( "%s/_MTN/options" % base_get_scmbasepath(d) ).read().strip()
+		monotone_branch = file( "%s/_MTN/options" % path ).read().strip()
 		if monotone_branch.startswith( "database" ):
 			monotone_branch_words = monotone_branch.split()
 			monotone_branch = monotone_branch_words[ monotone_branch_words.index( "branch" )+1][1:-1]
@@ -735,10 +765,10 @@ def base_get_metadata_monotone_branch(d):
 		pass
 	return monotone_branch
 
-def base_get_metadata_monotone_revision(d):
+def base_get_metadata_monotone_revision(path, d):
 	monotone_revision = "<unknown>"
 	try:
-		monotone_revision = file( "%s/_MTN/revision" % base_get_scmbasepath(d) ).read().strip()
+		monotone_revision = file( "%s/_MTN/revision" % path ).read().strip()
 		if monotone_revision.startswith( "format_version" ):
 			monotone_revision_words = monotone_revision.split()
 			monotone_revision = monotone_revision_words[ monotone_revision_words.index( "old_revision" )+1][1:-1]
@@ -746,16 +776,16 @@ def base_get_metadata_monotone_revision(d):
 		pass
 	return monotone_revision
 
-def base_get_metadata_svn_revision(d):
+def base_get_metadata_svn_revision(path, d):
 	revision = "<unknown>"
 	try:
-		revision = file( "%s/.svn/entries" % base_get_scmbasepath(d) ).readlines()[3].strip()
+		revision = file( "%s/.svn/entries" % path ).readlines()[3].strip()
 	except IOError:
 		pass
 	return revision
 
-def base_get_metadata_git_branch(d):
-	branch = os.popen('cd %s; git branch | grep "^* " | tr -d "* "' % base_get_scmbasepath(d)).read()
+def base_get_metadata_git_branch(path, d):
+	branch = os.popen('cd %s; git branch | grep "^* " | tr -d "* "' % path).read()
 
 	if len(branch) != 0:
 		return branch
@@ -767,32 +797,6 @@ def base_get_metadata_git_revision(d):
 		return rev
 	return "<unknown>"
 
-def base_detect_revision(d):
-	scms = [base_get_metadata_git_revision, \
-			base_get_metadata_svn_revision]
-
-	for scm in scms:
-		rev = scm(d)
-		if rev <> "<unknown>":
-			return rev
-
-	return "<unknown>"	
-
-def base_detect_branch(d):
-	scms = [base_get_metadata_git_branch]
-
-	for scm in scms:
-		rev = scm(d)
-		if rev <> "<unknown>":
-			return rev.strip()
-
-	return "<unknown>"	
-	
-	
-
-METADATA_BRANCH ?= "${@base_detect_branch(d)}"
-METADATA_REVISION ?= "${@base_detect_revision(d)}"
-
 GIT_CONFIG = "${STAGING_DIR_NATIVE}/usr/etc/gitconfig"
 
 def generate_git_config(e):
-- 
cgit v1.2.3