Updated build_chromeos.py to working state.

PRESUBMIT=passed
R=asharif,bjanakiraman
DELTA=133  (91 added, 13 deleted, 29 changed)
OCL=45050-p2
RCL=45052-p2
RDATE=2010/11/05 17:54:50


P4 change: 42605605
diff --git a/v14/build_chromeos.py b/v14/build_chromeos.py
index 747376b..cedcb1d 100755
--- a/v14/build_chromeos.py
+++ b/v14/build_chromeos.py
@@ -15,7 +15,6 @@
 import sys
 from utils import utils
 
-
 def Usage(parser, message):
   print "ERROR: " + message
   parser.print_help()
@@ -23,19 +22,19 @@
 
 
 def ExecuteCommandInChroot(chromeos_root, toolchain_root, command,
-                           return_output=False):
+                           return_output=False, chrome_root=""):
+  chrome_mount = ""
+  if chrome_root:
+    chrome_mount = "--chrome_root=" + chromeos_root + "/" + chrome_root
   commands = []
   tc_enter_chroot = (os.path.dirname(os.path.abspath(__file__)) +
                      "/tc-enter-chroot.sh")
-  commands.append("%s --chromeos_root=%s --toolchain_root=%s -- %s"
-                  % (tc_enter_chroot, chromeos_root, toolchain_root, command))
+  commands.append("%s --chromeos_root=%s --toolchain_root=%s %s -- %s"
+                  % (tc_enter_chroot, chromeos_root, toolchain_root,
+                     chrome_mount, command))
   return utils.RunCommands(commands, return_output)
 
 
-def StoreFile(filename, contents):
-  utils.RunCommand("echo '%s' > %s" % (contents, filename))
-
-
 def Main():
   """Build ChromeOS."""
   # Common initializations
@@ -80,23 +79,46 @@
   if options.clobber_chroot:
     clobber_chroot = "--replace"
   commands.append("./make_chroot --fast " + clobber_chroot)
-  utils.RunCommands(commands)
+  ret = utils.RunCommands(commands)
+  utils.AssertTrue(ret == 0, "make_chroot failed")
 
   # Setup board
   force = ""
   if options.clobber_board:
     force = "--force"
-  ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
-                         "FEATURES=\\\"keepwork noclean\\\" "
-                         "./setup_board --nousepkg --board=%s "
-                         "%s"
-                         % (options.board, force))
+  ret = ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
+                               "FEATURES=\\\"keepwork noclean\\\" "
+                               "./setup_board --nousepkg --board=%s "
+                               "%s" % (options.board, force))
+  utils.main_logger.LogError("setup_board failed")
+  #utils.AssertTrue(ret == 0, "setup_board failed")
+
+  # Modify make.conf to add CFLAGS/CXXFLAGS/LDFLAGS
+  commands = []
+  ret1 = ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
+                                "[ -e /build/%s/etc/make.conf.orig ] || "
+                                "sudo mv /build/%s/etc/make.conf "
+                                "/build/%s/etc/make.conf.orig"
+                                % (options.board, options.board, options.board))
+  makeconf = ("source make.conf.orig\\\n")
+              #"CFLAGS='%s'\\\nCXXFLAGS='%s'\\\nLDFLAGS='%s'\\\n" %
+              #(options.cflags, options.cxxflags, options.ldflags))
+  ret2 = utils.RunCommand("sudo rm -f %s/chroot/build/%s/etc/make.conf ; "
+                          "echo -e \"%s\" >  /tmp/make.conf; "
+                          "sudo cp /tmp/make.conf "
+                          "%s/chroot/build/%s/etc/make.conf"
+                          % (options.chromeos_root, options.board,
+                             makeconf, options.chromeos_root, options.board))
+
+  utils.AssertTrue(ret1 == 0 and ret2 == 0, "Could not modify make.conf")
 
   # Find Chrome browser version
-  chrome_version = (ExecuteCommandInChroot
-                    (options.chromeos_root, options.toolchain_root,
-                     "./chromeos_version.sh | "
-                     "grep CHROME_BUILD", True))
+  chrome_version = utils.RunCommand("%s/src/scripts/chromeos_version.sh | "
+                                    "grep CHROME_BUILD"
+                                    % options.chromeos_root, True)
+
+  ret = chrome_version[0]
+  utils.AssertTrue(ret == 0, "Could not determine Chrome browser version")
 
   chrome_version = chrome_version[1].strip().split("=")
   if len(chrome_version) == 2:
@@ -104,33 +126,29 @@
   else:
     chrome_version = ""
 
-  # Modify make.conf to add CFLAGS/CXXFLAGS/LDFLAGS
-  ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
-                         "mv /build/%s/etc/make.conf "
-                         "/build/%s/etc/make.conf.orig"
-                         % (options.board, options.board))
-  makeconf = ("source /build/%s/etc/make.conf.orig\n"
-              "/CFLAGS=%s\nCXXFLAGS=%s\nLDFLAGS=%s\n" %
-              (options.board, options.cflags,
-               options.cxxflags, options.ldflags))
-  StoreFile("%s/chroot/build/%s/etc/make.conf" %
-            (options.chromeos_root, options.board), makeconf)
-
   # Build packages
-  ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
-                         "CHROME_ORIGIN=SERVER_SOURCE CHROME_BUILD=%s "
-                         "./build_packages --withdev "
-                         "--board=%s --withtest --withautotest"
-                         % (chrome_version, options.board))
+  ret = ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
+                               "FEATURES=-usersandbox "
+                               "CHROME_ORIGIN=LOCAL_SOURCE CHROME_VERSION=%s "
+                               "./build_packages --withdev "
+                               "--board=%s --withtest --withautotest"
+                               % (chrome_version, options.board),
+                               chrome_root="chrome_browser")
+
+  utils.AssertTrue(ret == 0, "build_packages failed")
 
   # Build image
-  ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
-                         "./build_image --board=%s")
+  ret = ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
+                               "./build_image --board=%s" % options.board)
+
+  utils.AssertTrue(ret == 0, "build_image failed")
 
   # Mod image for test
-  ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
-                         "./mod_image_for_test --board=%s")
+  ret = ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
+                               "./mod_image_for_test.sh --board=%s"
+                               % options.board)
 
+  utils.AssertTrue(ret == 0, "mod_image_for_test failed")
 
 if __name__ == "__main__":
   Main()