Index: build/update-linux-sandbox.sh |
diff --git a/build/update-linux-sandbox.sh b/build/update-linux-sandbox.sh |
new file mode 100755 |
index 0000000000000000000000000000000000000000..ebf8c105a5c55a6be7a4808117711432190100d6 |
--- /dev/null |
+++ b/build/update-linux-sandbox.sh |
@@ -0,0 +1,75 @@ |
+#!/bin/sh |
+ |
+# Copyright (c) 2012 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. |
+ |
+BUILDTYPE="${BUILDTYPE:-Debug}" |
+CHROME_SRC_DIR="${CHROME_SRC_DIR:-$(dirname -- $(readlink -fn -- "$0"))/..}" |
+CHROME_OUT_DIR="${CHROME_SRC_DIR}/out/${BUILDTYPE}" |
+CHROME_SANDBOX_BUILD_PATH="${CHROME_OUT_DIR}/chrome_sandbox" |
+CHROME_SANDBOX_INST_PATH="/usr/local/sbin/chrome-devel-sandbox" |
+CHROME_SANDBOX_INST_DIR=$(dirname -- "$CHROME_SANDBOX_INST_PATH") |
+ |
+TARGET_DIR_TYPE=$(stat -f -c %t -- "${CHROME_SANDBOX_INST_DIR}" 2>/dev/null) |
+if [ $? -ne 0 ]; then |
+ echo "Could not get status of ${CHROME_SANDBOX_INST_DIR}" |
+ exit 1 |
+fi |
+ |
+# Make sure the path is not on NFS. |
+if [ "${TARGET_DIR_TYPE}" = "6969" ]; then |
+ echo "Please make sure ${CHROME_SANDBOX_INST_PATH} is not on NFS!" |
+ exit 1 |
+fi |
+ |
+installsandbox() { |
+ echo "(using sudo so you may be asked for your password)" |
+ sudo -- cp "${CHROME_SANDBOX_BUILD_PATH}" \ |
+ "${CHROME_SANDBOX_INST_PATH}" && |
+ sudo -- chown root:root "${CHROME_SANDBOX_INST_PATH}" && |
+ sudo -- chmod 4755 "${CHROME_SANDBOX_INST_PATH}" |
+ return $? |
+} |
+ |
+if [ ! -d "${CHROME_OUT_DIR}" ]; then |
+ echo -n "${CHROME_OUT_DIR} does not exist. Use \"BUILDTYPE=Release ${0}\" " |
+ echo "If you are building in Release mode" |
+ exit 1 |
+fi |
+ |
+if [ ! -f "${CHROME_SANDBOX_BUILD_PATH}" ]; then |
+ echo -n "Could not find ${CHROME_SANDBOX_BUILD_PATH}, " |
+ echo "please make sure you build the chrome_sandbox target" |
+ exit 1 |
+fi |
+ |
+if [ ! -f "${CHROME_SANDBOX_INST_PATH}" ]; then |
+ echo -n "Could not find ${CHROME_SANDBOX_INST_PATH}, " |
+ echo "installing it now." |
+ installsandbox |
+fi |
+ |
+if [ ! -f "${CHROME_SANDBOX_INST_PATH}" ]; then |
+ echo "Failed to install ${CHROME_SANDBOX_INST_PATH}" |
+ exit 1 |
+fi |
+ |
+CURRENT_API=$("${CHROME_SANDBOX_BUILD_PATH}" --get-api) |
+INSTALLED_API=$("${CHROME_SANDBOX_INST_PATH}" --get-api) |
+ |
+if [ "${CURRENT_API}" != "${INSTALLED_API}" ]; then |
+ echo "Your installed setuid sandbox is too old, installing it now." |
+ if ! installsandbox; then |
+ echo "Failed to install ${CHROME_SANDBOX_INST_PATH}" |
+ exit 1 |
+ fi |
+else |
+ echo "Your setuid sandbox is up to date" |
+ if [ "${CHROME_DEVEL_SANDBOX}" != "${CHROME_SANDBOX_INST_PATH}" ]; then |
+ echo -n "Make sure you have \"export " |
+ echo -n "CHROME_DEVEL_SANDBOX=${CHROME_SANDBOX_INST_PATH}\" " |
+ echo "somewhere in your .bashrc" |
+ echo "This variable is currently: ${CHROME_DEVEL_SANDBOX:-empty}" |
+ fi |
+fi |