diff options
Diffstat (limited to 'bitbake/lib/toaster/bldcontrol/sshbecontroller.py')
| -rw-r--r-- | bitbake/lib/toaster/bldcontrol/sshbecontroller.py | 58 |
1 files changed, 2 insertions, 56 deletions
diff --git a/bitbake/lib/toaster/bldcontrol/sshbecontroller.py b/bitbake/lib/toaster/bldcontrol/sshbecontroller.py index 45e15392e5..be797c9486 100644 --- a/bitbake/lib/toaster/bldcontrol/sshbecontroller.py +++ b/bitbake/lib/toaster/bldcontrol/sshbecontroller.py | |||
| @@ -29,7 +29,7 @@ import subprocess | |||
| 29 | 29 | ||
| 30 | from toastermain import settings | 30 | from toastermain import settings |
| 31 | 31 | ||
| 32 | from bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException, _getgitcheckoutdirectoryname | 32 | from bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException, _get_git_clonedirectory |
| 33 | 33 | ||
| 34 | def DN(path): | 34 | def DN(path): |
| 35 | return "/".join(path.split("/")[0:-1]) | 35 | return "/".join(path.split("/")[0:-1]) |
| @@ -124,62 +124,8 @@ class SSHBEController(BuildEnvironmentController): | |||
| 124 | assert len(bitbakes) == 1 | 124 | assert len(bitbakes) == 1 |
| 125 | # set layers in the layersource | 125 | # set layers in the layersource |
| 126 | 126 | ||
| 127 | # 1. get a list of repos, and map dirpaths for each layer | ||
| 128 | gitrepos = {} | ||
| 129 | gitrepos[bitbakes[0].giturl] = [] | ||
| 130 | gitrepos[bitbakes[0].giturl].append( ("bitbake", bitbakes[0].dirpath, bitbakes[0].commit) ) | ||
| 131 | |||
| 132 | for layer in layers: | ||
| 133 | # we don't process local URLs | ||
| 134 | if layer.giturl.startswith("file://"): | ||
| 135 | continue | ||
| 136 | if not layer.giturl in gitrepos: | ||
| 137 | gitrepos[layer.giturl] = [] | ||
| 138 | gitrepos[layer.giturl].append( (layer.name, layer.dirpath, layer.commit)) | ||
| 139 | for giturl in gitrepos.keys(): | ||
| 140 | commitid = gitrepos[giturl][0][2] | ||
| 141 | for e in gitrepos[giturl]: | ||
| 142 | if commitid != e[2]: | ||
| 143 | raise BuildSetupException("More than one commit per git url, unsupported configuration") | ||
| 144 | |||
| 145 | layerlist = [] | ||
| 146 | |||
| 147 | # 2. checkout the repositories | ||
| 148 | for giturl in gitrepos.keys(): | ||
| 149 | import os | ||
| 150 | localdirname = os.path.join(self.be.sourcedir, _getgitcheckoutdirectoryname(giturl)) | ||
| 151 | print "DEBUG: giturl ", giturl ,"checking out in current directory", localdirname | ||
| 152 | |||
| 153 | # make sure our directory is a git repository | ||
| 154 | if self._pathexists(localdirname): | ||
| 155 | if not giturl in self._shellcmd("git remote -v", localdirname): | ||
| 156 | raise BuildSetupException("Existing git repository at %s, but with different remotes (not '%s'). Aborting." % (localdirname, giturl)) | ||
| 157 | else: | ||
| 158 | self._shellcmd("git clone \"%s\" \"%s\"" % (giturl, localdirname)) | ||
| 159 | # checkout the needed commit | ||
| 160 | commit = gitrepos[giturl][0][2] | ||
| 161 | |||
| 162 | # branch magic name "HEAD" will inhibit checkout | ||
| 163 | if commit != "HEAD": | ||
| 164 | print "DEBUG: checking out commit ", commit, "to", localdirname | ||
| 165 | self._shellcmd("git fetch --all && git checkout \"%s\"" % commit , localdirname) | ||
| 166 | |||
| 167 | # take the localdirname as poky dir if we can find the oe-init-build-env | ||
| 168 | if self.pokydirname is None and self._pathexists(os.path.join(localdirname, "oe-init-build-env")): | ||
| 169 | print "DEBUG: selected poky dir name", localdirname | ||
| 170 | self.pokydirname = localdirname | ||
| 171 | |||
| 172 | # verify our repositories | ||
| 173 | for name, dirpath, commit in gitrepos[giturl]: | ||
| 174 | localdirpath = os.path.join(localdirname, dirpath) | ||
| 175 | if not self._pathexists(localdirpath): | ||
| 176 | raise BuildSetupException("Cannot find layer git path '%s' in checked out repository '%s:%s'. Aborting." % (localdirpath, giturl, commit)) | ||
| 177 | |||
| 178 | if name != "bitbake": | ||
| 179 | layerlist.append(localdirpath) | ||
| 180 | |||
| 181 | print "DEBUG: current layer list ", layerlist | ||
| 182 | 127 | ||
| 128 | raise Exception("Not implemented: SSH setLayers") | ||
| 183 | # 3. configure the build environment, so we have a conf/bblayers.conf | 129 | # 3. configure the build environment, so we have a conf/bblayers.conf |
| 184 | assert self.pokydirname is not None | 130 | assert self.pokydirname is not None |
| 185 | self._setupBE() | 131 | self._setupBE() |
