Ported ClangLTOBuilder.
diff --git a/zorg/buildbot/builders/ClangLTOBuilder.py b/zorg/buildbot/builders/ClangLTOBuilder.py
index 1cd39a0..5121e7f 100644
--- a/zorg/buildbot/builders/ClangLTOBuilder.py
+++ b/zorg/buildbot/builders/ClangLTOBuilder.py
@@ -1,7 +1,7 @@
 from buildbot.steps.shell import ShellCommand
-from buildbot.steps.slave import RemoveDirectory
-from buildbot.status.results import FAILURE
+from buildbot.process.results import FAILURE
 from buildbot.process.properties import WithProperties
+from buildbot.plugins import steps
 
 from zorg.buildbot.commands.CmakeCommand import CmakeCommand
 from zorg.buildbot.commands.NinjaCommand import NinjaCommand
@@ -27,13 +27,13 @@
 
     # This stage could use incremental build.
     # Clean stage1, only if requested.
-    f.addStep(RemoveDirectory(name='clean-%s-dir' % obj_dir,
+    f.addStep(steps.RemoveDirectory(name='clean-%s-dir' % obj_dir,
               dir=obj_dir,
               haltOnFailure=False,
               flunkOnFailure=False,
               doStepIf=clean
               ))
-    f.addStep(RemoveDirectory(name='clean-%s-dir' % f.stage_installdirs[stage_idx],
+    f.addStep(steps.RemoveDirectory(name='clean-%s-dir' % f.stage_installdirs[stage_idx],
               dir=f.stage_installdirs[stage_idx],
               haltOnFailure=False,
               flunkOnFailure=False,
@@ -82,7 +82,6 @@
                            path=src_dir,
                            env=env,
                            workdir=obj_dir,
-                           doStepIf=FileDoesNotExist("CMakeCache.txt")
                            ))
 
     # Build clang by the system compiler
@@ -138,13 +137,13 @@
     staged_install = f.stage_installdirs[use_stage_idx]
 
     # Always do a clean build for the staged compiler.
-    f.addStep(RemoveDirectory(name='clean-%s-dir' % obj_dir,
+    f.addStep(steps.RemoveDirectory(name='clean-%s-dir' % obj_dir,
               dir=obj_dir,
               haltOnFailure=False,
               flunkOnFailure=False,
               ))
 
-    f.addStep(RemoveDirectory(name='clean-%s-dir' % f.stage_installdirs[stage_idx],
+    f.addStep(steps.RemoveDirectory(name='clean-%s-dir' % f.stage_installdirs[stage_idx],
               dir=f.stage_installdirs[stage_idx],
               haltOnFailure=False,
               flunkOnFailure=False,
@@ -175,11 +174,11 @@
 
     cmake_args.append(
         WithProperties(
-            "-DCMAKE_CXX_COMPILER=%(workdir)s/" + staged_install + "/bin/clang++"
+            "-DCMAKE_CXX_COMPILER=%(builddir)s/" + staged_install + "/bin/clang++"
         ))
     cmake_args.append(
         WithProperties(
-            "-DCMAKE_C_COMPILER=%(workdir)s/" + staged_install + "/bin/clang"
+            "-DCMAKE_C_COMPILER=%(builddir)s/" + staged_install + "/bin/clang"
         ))
 
     CmakeCommand.applyRequiredOptions(cmake_args, [
@@ -194,7 +193,6 @@
                            path=src_dir,
                            env=env,
                            workdir=obj_dir,
-                           doStepIf=FileDoesNotExist("CMakeCache.txt")
                            ))
 
     # Build clang by the staged compiler
@@ -250,9 +248,6 @@
     if lto is None:
         lto = 'ON'
 
-    if jobs is None:
-        jobs = "%(jobs)s"
-
     if extra_configure_args is None:
         extra_configure_args = []
     else:
@@ -330,11 +325,11 @@
 
         configure_args.append(
             WithProperties(
-                "-DCMAKE_AR=%(workdir)s/" + staged_install + "/bin/llvm-ar"
+                "-DCMAKE_AR=%(builddir)s/" + staged_install + "/bin/llvm-ar"
             ))
         configure_args.append(
             WithProperties(
-                "-DCMAKE_RANLIB=%(workdir)s/" + staged_install + "/bin/llvm-ranlib"
+                "-DCMAKE_RANLIB=%(builddir)s/" + staged_install + "/bin/llvm-ranlib"
             ))
 
         _addSteps4StagedCompiler(f,
@@ -371,10 +366,9 @@
 
         # Only if the compare-compilers step has failed.
         def _prevStepFailed(step):
-            steps = step.build.getStatus().getSteps()
+            steps = step.build.executedSteps
             prev_step = steps[-2]
-            (result, _) = prev_step.getResults()
-            return (result == FAILURE)
+            return (prev_step.results == FAILURE)
 
         dir1 = f.stage_objdirs[-2]
         dir2 = f.stage_objdirs[-1]