Refer to Chrome's DEPS to make rolling easier.

- Sync Chrome's DEPS to chromium_deps/, and use the From() keyword
  to pull the correct revisions from it, rather than having to manually
  enter them.
- This idea is borrowed from the WebKit DEPS:
http://trac.webkit.org/browser/trunk/Source/WebKit/chromium/DEPS
- Fix update.py's DEPS parsing to handle From().
- Roll Chrome 120526:122775.
- Organize the deps alphabetically.
- Sync the in-tree gold linker, which is now required due to a change
  in the linker flags.
- Add the new deps to .gitignore.

BUG=
TEST=build on all platforms

Review URL: https://webrtc-codereview.appspot.com/401004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1755 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/.gitignore b/.gitignore
index 9535578..c27b166 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,7 @@
 .pydevproject
 .settings
 /build
+/chromium_deps
 /gyp-mac-tool
 /Makefile
 /out
@@ -40,6 +41,7 @@
 /third_party/cygwin
 /third_party/expat
 /third_party/gaeunit
+/third_party/gold
 /third_party/google-gflags/src
 /third_party/google-visualization-python
 /third_party/jsoncpp
diff --git a/DEPS b/DEPS
index 744d438..c4b16a5 100644
--- a/DEPS
+++ b/DEPS
@@ -3,7 +3,7 @@
   # If you do not know, use the full path while defining your new deps entry.
   "googlecode_url": "http://%s.googlecode.com/svn",
   "chromium_trunk" : "http://src.chromium.org/svn/trunk",
-  "chromium_revision": "120526",
+  "chromium_revision": "122775",
 
   # External resources like video and audio files used for testing purposes.
   # Downloaded on demand when needed.
@@ -13,27 +13,65 @@
 # NOTE: Prefer revision numbers to tags for svn deps. Use http rather than
 # https; the latter can cause problems for users behind proxies.
 deps = {
+  "trunk/chromium_deps":
+    File(Var("chromium_trunk") + "/src/DEPS@" + Var("chromium_revision")),
+
   "trunk/build":
     Var("chromium_trunk") + "/src/build@" + Var("chromium_revision"),
 
   "trunk/testing":
     Var("chromium_trunk") + "/src/testing@" + Var("chromium_revision"),
 
-  "trunk/testing/gtest":
-    (Var("googlecode_url") % "googletest") + "/trunk@573",
-
   "trunk/testing/gmock":
-    (Var("googlecode_url") % "googlemock") + "/trunk@386",
+    From("trunk/chromium_deps", "src/testing/gmock"),
+
+  "trunk/testing/gtest":
+    From("trunk/chromium_deps", "src/testing/gtest"),
+
+  "trunk/third_party/expat":
+    Var("chromium_trunk") + "/src/third_party/expat@" + Var("chromium_revision"),
+
+  # Used by tools/quality_tracking.
+  "trunk/third_party/gaeunit":
+    "http://code.google.com/p/gaeunit.git@e16d5bd4",
+
+  "trunk/third_party/google-gflags/src":
+    (Var("googlecode_url") % "google-gflags") + "/trunk/src@45",
+
+  # Used by tools/quality_tracking/dashboard and tools/python_charts.
+  "trunk/third_party/google-visualization-python":
+    (Var("googlecode_url") % "google-visualization-python") + "/trunk@15",
+
+  "trunk/third_party/libjpeg":
+    Var("chromium_trunk") + "/src/third_party/libjpeg@" + Var("chromium_revision"),
+
+  "trunk/third_party/libjpeg_turbo":
+    From("trunk/chromium_deps", "src/third_party/libjpeg_turbo"),
+
+  "trunk/third_party/libvpx/source/libvpx":
+    "http://git.chromium.org/webm/libvpx.git@v1.0.0",
+
+  "trunk/third_party/libyuv":
+    (Var("googlecode_url") % "libyuv") + "/trunk@182",
+
+  "trunk/third_party/protobuf":
+    Var("chromium_trunk") + "/src/third_party/protobuf@" + Var("chromium_revision"),
+
+  # Used by tools/quality_tracking.
+  "trunk/third_party/oauth2":
+    "http://github.com/simplegeo/python-oauth2.git@a83f4a29",
+
+  "trunk/third_party/yasm":
+    Var("chromium_trunk") + "/src/third_party/yasm@" + Var("chromium_revision"),
+
+  "trunk/third_party/yasm/source/patched-yasm":
+    From("trunk/chromium_deps", "src/third_party/yasm/source/patched-yasm"),
+
+  "trunk/tools/clang":
+    Var("chromium_trunk") + "/src/tools/clang@" + Var("chromium_revision"),
 
   "trunk/tools/gyp":
-    (Var("googlecode_url") % "gyp") + "/trunk@1187",
-
-  # Needed by build/common.gypi.
-  "trunk/tools/win/supalink":
-    Var("chromium_trunk") + "/src/tools/win/supalink@" + Var("chromium_revision"),
-
-  "trunk/tools/clang/scripts":
-    Var("chromium_trunk") + "/src/tools/clang/scripts@" + Var("chromium_revision"),
+    From("trunk/chromium_deps", "src/tools/gyp"),
 
   "trunk/tools/python":
     Var("chromium_trunk") + "/src/tools/python@" + Var("chromium_revision"),
@@ -41,57 +79,24 @@
   "trunk/tools/valgrind":
     Var("chromium_trunk") + "/src/tools/valgrind@" + Var("chromium_revision"),
 
-  "trunk/third_party/protobuf/":
-    Var("chromium_trunk") + "/src/third_party/protobuf@" + Var("chromium_revision"),
-
-  "trunk/third_party/libvpx/source/libvpx":
-    "http://git.chromium.org/webm/libvpx.git@v1.0.0",
-
-  "trunk/third_party/libjpeg_turbo/":
-    Var("chromium_trunk") + "/deps/third_party/libjpeg_turbo@119959",
-
-  "trunk/third_party/libjpeg/":
-    Var("chromium_trunk") + "/src/third_party/libjpeg@" + Var("chromium_revision"),
-
-  "trunk/third_party/yasm/":
-    Var("chromium_trunk") + "/src/third_party/yasm@" + Var("chromium_revision"),
-
-  "trunk/third_party/expat/":
-    Var("chromium_trunk") + "/src/third_party/expat@" + Var("chromium_revision"),
-
-  "trunk/third_party/google-gflags/src":
-    (Var("googlecode_url") % "google-gflags") + "/trunk/src@45",
-
-  "trunk/third_party/yasm/source/patched-yasm":
-    Var("chromium_trunk") + "/deps/third_party/yasm/patched-yasm@73761",
-
-  # Used by libjpeg-turbo
-  "trunk/third_party/yasm/binaries":
-    Var("chromium_trunk") + "/deps/third_party/yasm/binaries@74228",
-
-  # TODO(andrew): roll to 164 after fixing:
-  # http://code.google.com/p/webrtc/issues/detail?id=267
-  "trunk/third_party/libyuv":
-    (Var("googlecode_url") % "libyuv") + "/trunk@182",
-
-  # Used by tools/quality_tracking/dashboard and tools/python_charts
-  "trunk/third_party/google-visualization-python":
-    (Var("googlecode_url") % "google-visualization-python") + "/trunk@15",
-
-  # Used by tools/quality_tracking
-  "trunk/third_party/oauth2":
-    "http://github.com/simplegeo/python-oauth2.git@a83f4a29",
-
-  # Used by tools/quality_tracking
-  "trunk/third_party/gaeunit":
-    "http://code.google.com/p/gaeunit.git@e16d5bd4",
+  # Needed by build/common.gypi.
+  "trunk/tools/win/supalink":
+    Var("chromium_trunk") + "/src/tools/win/supalink@" + Var("chromium_revision"),
 }
 
 deps_os = {
   "win": {
-    "trunk/third_party/cygwin/":
+    "trunk/third_party/cygwin":
       Var("chromium_trunk") + "/deps/third_party/cygwin@66844",
-  }
+
+    # Used by libjpeg-turbo.
+    "trunk/third_party/yasm/binaries":
+      From("trunk/chromium_deps", "src/third_party/yasm/binaries"),
+  },
+  "unix": {
+    "trunk/third_party/gold":
+      From("trunk/chromium_deps", "src/third_party/gold"),
+  },
 }
 
 hooks = [
diff --git a/tools/resources/update.py b/tools/resources/update.py
index 9896d2e..a07e2c1 100755
--- a/tools/resources/update.py
+++ b/tools/resources/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
 #
 # Use of this source code is governed by a BSD-style license
 # that can be found in the LICENSE file in the root of the source
@@ -39,18 +39,18 @@
   extension = '.tgz'
 
   # Variables used by the script.
-  project_root_dir = os.path.normpath(sys.path[0] + '/../../') 
+  project_root_dir = os.path.normpath(sys.path[0] + '/../../')
   deps_file = os.path.join(project_root_dir, 'DEPS')
   downloads_dir = os.path.join(project_root_dir, 'resources')
   current_version_file = os.path.join(downloads_dir, version_filename)
-  
+
   # Ensure the downloads dir is created.
   if not os.path.isdir(downloads_dir):
     os.mkdir(downloads_dir)
 
   # Define and parse arguments.
   parser = OptionParser()
-  parser.add_option('-f', '--force', action='store_true', dest='force', 
+  parser.add_option('-f', '--force', action='store_true', dest='force',
                     help='forces download and removes all existing resources.')
   (options, unused_args) = parser.parse_args()
 
@@ -66,13 +66,13 @@
   deps_vars = EvalDepsFile(deps_file)['vars']
   latest_version = int(deps_vars[deps_key])
   print 'Version in DEPS file: %d' % latest_version
-  
+
   # Download archive if forced or DEPS version is different than our current.
   if latest_version != current_version or options.force:
     temp_dir = tempfile.mkdtemp(prefix='webrtc-resources-')
     archive_name = '%s%s%s' % (filename_prefix, latest_version, extension)
     remote_archive_url = urljoin(remote_url_base, archive_name)
-    # Download into the temporary directory with display of progress, inspired  
+    # Download into the temporary directory with display of progress, inspired
     # by the Stack Overflow post at http://goo.gl/JIrbo
     temp_file = os.path.join(temp_dir, archive_name)
     print 'Downloading: %s' % remote_archive_url
@@ -108,7 +108,7 @@
     f = open(new_version_file, 'w')
     f.write('%d' % latest_version)
     f.close()
-  
+
     # Extract the archive.
     archive = tarfile.open(temp_file, 'r:gz')
     archive.extractall(downloads_dir)
@@ -121,8 +121,9 @@
 
 
 def EvalDepsFile(path):
-  scope = {'Var': lambda name: scope['vars'][name], 
-           'File': lambda name: name}
+  scope = {'Var': lambda name: scope['vars'][name],
+           'File': lambda name: name,
+           'From': lambda deps, definition: deps}
   execfile(path, {}, scope)
   return scope