Reason:
1) We use mock to build a RPM. Mock does all the SCM-stuff via its plugin.
2) This plugin actually does NOT do a "git submodule update --init --recursive" after the branch checkout.
3) This leads to wrong (old) submodule references.
4) Compile error.
---
py/mockbuild/scm.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/py/mockbuild/scm.py b/py/mockbuild/scm.py
index e76293d..dc67bf0 100644
--- a/py/mockbuild/scm.py
+++ b/py/mockbuild/scm.py
@@ -39,6 +39,7 @@ class scmWorker(object):
self.branch = None
self.postget = None
+ self.afterpostget = None
if 'branch' in opts:
self.branch = opts['branch']
if self.branch:
@@ -46,6 +47,7 @@ class scmWorker(object):
self.get = self.get.replace("SCM_BRN", "-r " + self.branch)
elif self.method == "git":
self.postget = "git checkout " + self.branch
+ self.afterpostget = "git submodule update --init --recursive"
elif self.method == "svn":
self.get = self.get.replace("SCM_BRN", self.branch)
else:
@@ -73,6 +75,7 @@ class scmWorker(object):
self.log.debug("SCM checkout command: " + self.get)
self.log.debug("SCM checkout post command: " + str(self.postget))
+ self.log.debug("SCM checkout after post command: " + str(self.afterpostget))
self.environ = os.environ.copy()
# Set HOME properly while checking out from SCM since tools like
# Subversion might have there settings needed to carry out checkout
@@ -90,6 +93,8 @@ class scmWorker(object):
mockbuild.util.do(shlex.split(self.get), shell=False, cwd=self.wrk_dir, env=self.environ)
if self.postget:
mockbuild.util.do(shlex.split(self.postget), shell=False, cwd=self.src_dir, env=self.environ)
+ if self.afterpostget:
+ mockbuild.util.do(shlex.split(self.afterpostget), shell=False, cwd=self.src_dir, env=self.environ)
self.log.debug("Fetched sources from SCM")
decorate(traceLog())
--
1.9.1