diff --git a/.gn b/.gn
index 853c59a..68c23ac 100644
--- a/.gn
+++ b/.gn
@@ -2,6 +2,8 @@
 # tree and to set startup options. For documentation on the values set in this
 # file, run "gn help dotfile" at the command line.
 
+root = "//sandbox:"
+
 # The location of the build configuration file.
 buildconfig = "//build/config/BUILDCONFIG.gn"
 
diff --git a/DEPS b/DEPS
new file mode 100644
index 0000000..f228452
--- /dev/null
+++ b/DEPS
@@ -0,0 +1,141 @@
+# This file is used to manage the dependencies of the Chromium src repo. It is
+# used by gclient to determine what version of each dependency to check out, and
+# where.
+#
+# For more information, please refer to the official documentation:
+#   https://sites.google.com/a/chromium.org/dev/developers/how-tos/get-the-code
+#
+# When adding a new dependency, please update the top-level .gitignore file
+# to list the dependency's destination directory.
+#
+# -----------------------------------------------------------------------------
+# Rolling deps
+# -----------------------------------------------------------------------------
+# All repositories in this file are git-based, using Chromium git mirrors where
+# necessary (e.g., a git mirror is used when the source project is SVN-based).
+# To update the revision that Chromium pulls for a given dependency:
+#
+#  # Create and switch to a new branch
+#  git new-branch depsroll
+#  # Run roll-dep (provided by depot_tools) giving the dep's path and the
+#  # desired SVN revision number (e.g., third_party/foo/bar and a revision such
+#  # number from Subversion)
+#  roll-dep third_party/foo/bar REVISION_NUMBER
+#  # You should now have a modified DEPS file; commit and upload as normal
+#  git commit -a
+#  git cl upload
+
+
+vars = {
+  # Use this googlecode_url variable only if there is an internal mirror for it.
+  # If you do not know, use the full path while defining your new deps entry.
+  'googlecode_url': 'http://%s.googlecode.com/svn',
+  'sourceforge_url': 'http://svn.code.sf.net/p/%(repo)s/code',
+  'llvm_url': 'http://src.chromium.org/llvm-project',
+  'llvm_git': 'https://llvm.googlesource.com',
+  'webkit_trunk': 'http://src.chromium.org/blink/trunk',
+  'webkit_revision': 'ff93a8671a046304f8dfeeed6f7a366432d30f8b', # from svn revision 195201
+  'chromium_git': 'https://chromium.googlesource.com',
+  'chromiumos_git': 'https://chromium.googlesource.com/chromiumos',
+  'pdfium_git': 'https://pdfium.googlesource.com',
+  'skia_git': 'https://skia.googlesource.com',
+  'boringssl_git': 'https://boringssl.googlesource.com',
+  'libvpx_revision': 'e9830e14ed6d3422c803bf45e0f6ffec341d8666',
+  'sfntly_revision': '1bdaae8fc788a5ac8936d68bf24f37d977a13dac',
+  'skia_revision': '8e5c177c8589e00f630ac6fae763c65cb9cae896',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling Skia
+  # and V8 without interference from each other.
+  'v8_branch': 'trunk',
+  'v8_revision': '2e4c5505e85d94b520e853dda3f0cc3f2769e5f0',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling WebRTC
+  # and V8 without interference from each other.
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling swarming_client
+  # and whatever else without interference from each other.
+  'swarming_revision': 'f222001cc23c7cdb574bf4cfb447f65c94bc6da3',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling ANGLE
+  # and whatever else without interference from each other.
+  'angle_revision': 'b11e2483742db884bd0af41f78f528240577356b',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling build tools
+  # and whatever else without interference from each other.
+  'buildtools_revision': 'b0ede9c89f9d5fbe5387d961ad4c0ec665b6c821',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling PDFium
+  # and whatever else without interference from each other.
+  'pdfium_revision': 'ad2a822ce5c320c61510ffdc309f766ab1056ef5',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling openmax_dl
+  # and whatever else without interference from each other.
+  'openmax_dl_revision': '0b238cb62c32b6f45680cf577eddb1b051ae0219',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling BoringSSL
+  # and whatever else without interference from each other.
+  'boringssl_revision': '68de407b5fc746c0fa82706dd897288d01c32930',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling nss
+  # and whatever else without interference from each other.
+  'nss_revision': '95068068df410e398ac221a9195c999b22bd63e9', # from svn revision 294785
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling google-toolbox-for-mac
+  # and whatever else without interference from each other.
+  'google_toolbox_for_mac_revision': 'ce47a231ea0b238fbe95538e86cc61d74c234be6', # from svn revision 705
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling lighttpd
+  # and whatever else without interference from each other.
+  'lighttpd_revision': '9dfa55d15937a688a92cbf2b7a8621b0927d06eb',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling lss
+  # and whatever else without interference from each other.
+  'lss_revision': '6f97298fe3794e92c8c896a6bc06e0b36e4c3de3',
+  # Three lines of non-changing comments so that
+  # the commit queue can handle CLs rolling NaCl
+  # and whatever else without interference from each other.
+  'nacl_revision': 'c3aa3421888b5e69932e2389658969ac181b83f7',
+}
+
+# Only these hosts are allowed for dependencies in this DEPS file.
+# If you need to add a new host, contact chrome infrastracture team.
+allowed_hosts = [
+  'chromium.googlesource.com',
+  'boringssl.googlesource.com',
+  'pdfium.googlesource.com',
+  'android.googlesource.com',
+]
+
+deps = {
+  'src/testing/gtest':
+   Var('chromium_git') + '/external/googletest.git' + '@' + 'be1868139ffe0ccd0e8e3b37292b84c821d9c8ad', # from svn revision 704
+}
+
+deps_os = {
+  'unix': {
+    # Linux, really.
+    'src/third_party/lss':
+      Var('chromium_git') + '/external/linux-syscall-support/lss.git' + '@' + Var('lss_revision'),
+  },
+}
+
+hooks = [
+  {
+    # Pull clang if needed or requested via GYP_DEFINES.
+    # Note: On Win, this should run after win_toolchain, as it may use it.
+    'name': 'clang',
+    'pattern': '.',
+    'action': ['python', 'src/tools/clang/scripts/update.py', '--if-needed'],
+  },
+  {
+    'name': 'gn_linux64',
+    'pattern': '.',
+    'action': [ 'download_from_google_storage',
+                '--no_resume',
+                '--platform=linux*',
+                '--no_auth',
+                '--bucket', 'chromium-gn',
+                '-s', 'src/buildtools/linux64/gn.sha1',
+    ],
+  },
+]
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..04bcaf3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,35 @@
+### Bauxite: a Linux sandbox toolkit
+
+Bauxite is an extraction of the Chromium sandbox into its own separate
+repository. The effort currently focuses on making the [Linux
+version](https://code.google.com/p/chromium/wiki/LinuxSandboxing) available.
+
+This early preview contains a lot of dependencies, most notably, Chromium's
+base/. We expect to reduce dependencies to a minimum in the future.
+
+Get the source:
+
+ * Install Chromium's
+   [depot_tools](https://www.chromium.org/developers/how-tos/install-depot-tools)
+   in your ```$PATH```
+ * Get the source:
+
+```
+gclient config --unmanaged --name=src <bauxite_repository_url>
+gclient sync
+```
+
+gclient is used to synchronize the two subrepositories, third_party/lss and
+testing/gtest and also to run "hooks" that will automatically download the
+required "gn" (generate Ninja) and Clang binaries.
+
+Build:
+
+ * Generate the Ninja files (from the src directory):
+```
+gn gen out/Debug
+```
+ * Build sandbox_linux_unittests (from the src directory):
+```
+ninja -C out/Debug sandbox_linux_unittests
+```
diff --git a/base/BUILD.gn b/base/BUILD.gn
index de282cf..c0db9f8 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -895,7 +895,7 @@
   deps = [
     ":base",
     "//base/third_party/dynamic_annotations",
-    "//third_party/icu",
+    #"//third_party/icu",
   ]
 
   if (is_android && !is_debug) {
@@ -920,7 +920,7 @@
       ":base",
       "//base/test:test_support",
       "//base/test:test_support_perf",
-      "//testing/perf",
+      #"//testing/perf",
       "//testing/gtest",
     ]
 
@@ -949,7 +949,7 @@
       ]
       deps = [
         ":base",
-        "//third_party/icu:icuuc",
+        #"//third_party/icu:icuuc",
       ]
     }
 
@@ -1317,7 +1317,7 @@
     "//base/trace_event:trace_event_unittests",
     "//testing/gmock",
     "//testing/gtest",
-    "//third_party/icu",
+    #"//third_party/icu",
   ]
 
   # Allow more direct string conversions on platforms with native utf8
diff --git a/base/test/BUILD.gn b/base/test/BUILD.gn
index 91456db..41327a2 100644
--- a/base/test/BUILD.gn
+++ b/base/test/BUILD.gn
@@ -134,8 +134,8 @@
     "//base/third_party/dynamic_annotations",
     "//testing/gmock",
     "//testing/gtest",
-    "//third_party/libxml",
-    "//third_party/icu:icuuc",
+    #"//third_party/libxml",
+    #"//third_party/icu:icuuc",
   ]
 
   if (!is_posix) {
diff --git a/build/config/linux/BUILD.gn b/build/config/linux/BUILD.gn
index 3d65937..43dbaeb 100644
--- a/build/config/linux/BUILD.gn
+++ b/build/config/linux/BUILD.gn
@@ -6,12 +6,12 @@
 import("//build/config/features.gni")
 import("//build/config/sysroot.gni")
 import("//build/config/ui.gni")
-import("//tools/generate_library_loader/generate_library_loader.gni")
+#import("//tools/generate_library_loader/generate_library_loader.gni")
 
-gypi_values = exec_script("//build/gypi_to_gn.py",
-                          [ rebase_path("../../linux/system.gyp") ],
-                          "scope",
-                          [ "../../linux/system.gyp" ])
+#gypi_values = exec_script("//build/gypi_to_gn.py",
+#                          [ rebase_path("../../linux/system.gyp") ],
+#                          "scope",
+#                          [ "../../linux/system.gyp" ])
 
 config("sdk") {
   if (sysroot != "") {
@@ -35,6 +35,23 @@
   }
 }
 
+pkg_config("glib") {
+  packages = [
+    "glib-2.0",
+    "gmodule-2.0",
+    "gobject-2.0",
+    "gthread-2.0",
+  ]
+}
+
+config("libcap") {
+  libs = [ "cap" ]
+}
+
+
+
+if (false) {
+
 pkg_config("atk") {
   packages = [ "atk" ]
   atk_lib_dir = exec_script(pkg_config_script,
@@ -250,3 +267,4 @@
     ":udev1_loader",
   ]
 }
+}
diff --git a/sandbox/linux/BUILD.gn b/sandbox/linux/BUILD.gn
index 6cca0d3..edc91c0 100644
--- a/sandbox/linux/BUILD.gn
+++ b/sandbox/linux/BUILD.gn
@@ -104,6 +104,9 @@
   if (is_linux) {
     # Don't use this on Android.
     libs = [ "rt" ]
+    defines = [ "SANDBOX_TEST_STANDALONE" ]
+  } else {
+    defines = [ "SANDBOX_TEST_STANDALONE" ]
   }
 
   if (compile_suid_client) {
diff --git a/tools/bauxite/chromium_to_bauxite.sh b/tools/bauxite/chromium_to_bauxite.sh
new file mode 100644
index 0000000..e0a993a
--- /dev/null
+++ b/tools/bauxite/chromium_to_bauxite.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This is a helper to "merge" the required chromium file to Bauxite's
+# "upstream_chromium" branch.
+# Before using, make sure that the SRC directory is clean (for instance, run
+# 'git clean -f -d') in order to not sync any binary files or other artefacts.
+#
+# Once this is done, dependencies in Bauxite's "DEPS" file may need to be
+# manually updated.
+
+set -e
+
+# Chromium src directory. Can be retrieved with
+# "fetch --nohooks --no-history chromium"
+SRC="chromium/src"
+
+DEST="bauxite/src"
+
+# Note: directories must end with '/'
+for i in "AUTHORS" "LICENSE" ".gn" "base/" \
+"build/" "buildtools/linux64/" "sandbox/" \
+"testing/multiprocess_func_list.cc" "testing/multiprocess_func_list.h" \
+"testing/test.gni" "third_party/libevent/" \
+"third_party/modp_b64/" "tools/clang/scripts/"
+do
+  rsync -a --delete "$SRC/$i" "$DEST/$i"
+done
