summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/bldcontrol/localhostbecontroller.py')
-rw-r--r--bitbake/lib/toaster/bldcontrol/localhostbecontroller.py38
1 files changed, 17 insertions, 21 deletions
diff --git a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
index a272860ec0..ebf2b4f3bb 100644
--- a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
+++ b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
@@ -86,8 +86,12 @@ class LocalhostBEController(BuildEnvironmentController):
86 raise 86 raise
87 87
88 cmd = "bash -c \"source %s/oe-init-build-env %s && DATABASE_URL=%s source toaster start noweb brbe=%s\"" % (self.pokydirname, self.be.builddir, self.dburl, brbe) 88 cmd = "bash -c \"source %s/oe-init-build-env %s && DATABASE_URL=%s source toaster start noweb brbe=%s\"" % (self.pokydirname, self.be.builddir, self.dburl, brbe)
89 print("DEBUG: executing ", cmd) 89 port = "-1"
90 print self._shellcmd(cmd) 90 for i in self._shellcmd(cmd).split("\n"):
91 if i.startswith("Bitbake server address"):
92 port = i.split(" ")[-1]
93 print "Found bitbake server port ", port
94
91 def _toaster_ui_started(filepath): 95 def _toaster_ui_started(filepath):
92 if not os.path.exists(filepath): 96 if not os.path.exists(filepath):
93 return False 97 return False
@@ -105,7 +109,7 @@ class LocalhostBEController(BuildEnvironmentController):
105 print("DEBUG: Started server") 109 print("DEBUG: Started server")
106 assert self.be.sourcedir and os.path.exists(self.be.builddir) 110 assert self.be.sourcedir and os.path.exists(self.be.builddir)
107 self.be.bbaddress = "localhost" 111 self.be.bbaddress = "localhost"
108 self.be.bbport = "8200" 112 self.be.bbport = port
109 self.be.bbstate = BuildEnvironment.SERVER_STARTED 113 self.be.bbstate = BuildEnvironment.SERVER_STARTED
110 self.be.save() 114 self.be.save()
111 115
@@ -129,7 +133,7 @@ class LocalhostBEController(BuildEnvironmentController):
129 gitrepos = {} 133 gitrepos = {}
130 gitrepos[bitbakes[0].giturl] = [] 134 gitrepos[bitbakes[0].giturl] = []
131 gitrepos[bitbakes[0].giturl].append( ("bitbake", bitbakes[0].dirpath, bitbakes[0].commit) ) 135 gitrepos[bitbakes[0].giturl].append( ("bitbake", bitbakes[0].dirpath, bitbakes[0].commit) )
132 136
133 for layer in layers: 137 for layer in layers:
134 # we don't process local URLs 138 # we don't process local URLs
135 if layer.giturl.startswith("file://"): 139 if layer.giturl.startswith("file://"):
@@ -141,7 +145,8 @@ class LocalhostBEController(BuildEnvironmentController):
141 commitid = gitrepos[giturl][0][2] 145 commitid = gitrepos[giturl][0][2]
142 for e in gitrepos[giturl]: 146 for e in gitrepos[giturl]:
143 if commitid != e[2]: 147 if commitid != e[2]:
144 raise BuildSetupException("More than one commit per git url, unsupported configuration") 148 import pprint
149 raise BuildSetupException("More than one commit per git url, unsupported configuration: \n%s" % pprint.pformat(gitrepos))
145 150
146 151
147 layerlist = [] 152 layerlist = []
@@ -170,6 +175,11 @@ class LocalhostBEController(BuildEnvironmentController):
170 print "DEBUG: selected poky dir name", localdirname 175 print "DEBUG: selected poky dir name", localdirname
171 self.pokydirname = localdirname 176 self.pokydirname = localdirname
172 177
178 # make sure we have a working bitbake
179 if not os.path.exists(os.path.join(self.pokydirname, 'bitbake')):
180 print "DEBUG: checking bitbake into the poky dirname %s " % self.pokydirname
181 self._shellcmd("git clone -b \"%s\" \"%s\" \"%s\" " % (bitbakes[0].commit, bitbakes[0].giturl, os.path.join(self.pokydirname, 'bitbake')))
182
173 # verify our repositories 183 # verify our repositories
174 for name, dirpath, commit in gitrepos[giturl]: 184 for name, dirpath, commit in gitrepos[giturl]:
175 localdirpath = os.path.join(localdirname, dirpath) 185 localdirpath = os.path.join(localdirname, dirpath)
@@ -177,7 +187,7 @@ class LocalhostBEController(BuildEnvironmentController):
177 raise BuildSetupException("Cannot find layer git path '%s' in checked out repository '%s:%s'. Aborting." % (localdirpath, giturl, commit)) 187 raise BuildSetupException("Cannot find layer git path '%s' in checked out repository '%s:%s'. Aborting." % (localdirpath, giturl, commit))
178 188
179 if name != "bitbake": 189 if name != "bitbake":
180 layerlist.append(localdirpath) 190 layerlist.append(localdirpath.rstrip("/"))
181 191
182 print "DEBUG: current layer list ", layerlist 192 print "DEBUG: current layer list ", layerlist
183 193
@@ -190,21 +200,7 @@ class LocalhostBEController(BuildEnvironmentController):
190 if not os.path.exists(bblayerconf): 200 if not os.path.exists(bblayerconf):
191 raise BuildSetupException("BE is not consistent: bblayers.conf file missing at %s" % bblayerconf) 201 raise BuildSetupException("BE is not consistent: bblayers.conf file missing at %s" % bblayerconf)
192 202
193 conflines = open(bblayerconf, "r").readlines() 203 BuildEnvironmentController._updateBBLayers(bblayerconf, layerlist)
194
195 bblayerconffile = open(bblayerconf, "w")
196 skip = 0
197 for i in xrange(len(conflines)):
198 if skip > 0:
199 skip =- 1
200 continue
201 if conflines[i].startswith("# line added by toaster"):
202 skip = 1
203 else:
204 bblayerconffile.write(conflines[i])
205
206 bblayerconffile.write("\n# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"")
207 bblayerconffile.close()
208 204
209 self.islayerset = True 205 self.islayerset = True
210 return True 206 return True