| Index: chrome_mac/Google Chrome Packaging/sign_versioned_dir.sh
|
| ===================================================================
|
| --- chrome_mac/Google Chrome Packaging/sign_versioned_dir.sh (revision 0)
|
| +++ chrome_mac/Google Chrome Packaging/sign_versioned_dir.sh (revision 0)
|
| @@ -0,0 +1,71 @@
|
| +#!/bin/bash -p
|
| +
|
| +# 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.
|
| +
|
| +# Using codesign, sign the contents of the versioned directory. Namely, this
|
| +# includes the framework and helper app. After signing, the signatures are
|
| +# verified.
|
| +
|
| +set -eu
|
| +
|
| +# Environment sanitization. Set a known-safe PATH. Clear environment variables
|
| +# that might impact the interpreter's operation. The |bash -p| invocation
|
| +# on the #! line takes the bite out of BASH_ENV, ENV, and SHELLOPTS (among
|
| +# other features), but clearing them here ensures that they won't impact any
|
| +# shell scripts used as utility programs. SHELLOPTS is read-only and can't be
|
| +# unset, only unexported.
|
| +export PATH="/usr/bin:/bin:/usr/sbin:/sbin"
|
| +unset BASH_ENV CDPATH ENV GLOBIGNORE IFS POSIXLY_CORRECT
|
| +export -n SHELLOPTS
|
| +
|
| +ME="$(basename "${0}")"
|
| +readonly ME
|
| +
|
| +if [[ ${#} -ne 3 ]]; then
|
| + echo "usage: ${ME} app_path codesign_keychain codesign_id" >& 2
|
| + exit 1
|
| +fi
|
| +
|
| +app_path="${1}"
|
| +codesign_keychain="${2}"
|
| +codesign_id="${3}"
|
| +
|
| +versioned_dir="${app_path}/Contents/Versions/32.0.1700.19"
|
| +
|
| +# An .app bundle to be signed can be signed directly. Normally, signing a
|
| +# framework bundle requires that each version within be signed individually.
|
| +# http://developer.apple.com/mac/library/technotes/tn2007/tn2206.html#TNTAG13
|
| +# In Chrome's case, the framework bundle is unversioned, so it too can be
|
| +# signed directly. See copy_framework_unversioned.sh.
|
| +
|
| +framework="${versioned_dir}/Google Chrome Framework.framework"
|
| +helper_app="${versioned_dir}/Google Chrome Helper.app"
|
| +helper_eh_app="${versioned_dir}/Google Chrome Helper EH.app"
|
| +helper_np_app="${versioned_dir}/Google Chrome Helper NP.app"
|
| +
|
| +requirement_suffix="\
|
| +and certificate leaf = H\"85cee8254216185620ddc8851c7a9fc4dfe120ef\"\
|
| +"
|
| +
|
| +codesign -s "${codesign_id}" --keychain "${codesign_keychain}" "${framework}" \
|
| + -r="designated => identifier \"com.google.Chrome.framework\" \
|
| +${requirement_suffix}"
|
| +codesign -s "${codesign_id}" --keychain "${codesign_keychain}" "${helper_app}" \
|
| + -r="designated => identifier \"com.google.Chrome.helper\" \
|
| +${requirement_suffix}"
|
| +codesign -s "${codesign_id}" --keychain "${codesign_keychain}" \
|
| + "${helper_eh_app}" \
|
| + -r="designated => identifier \"com.google.Chrome.helper.EH\" \
|
| +${requirement_suffix}"
|
| +codesign -s "${codesign_id}" --keychain "${codesign_keychain}" \
|
| + "${helper_np_app}" \
|
| + -r="designated => identifier \"com.google.Chrome.helper.NP\" \
|
| +${requirement_suffix}"
|
| +
|
| +# Verify everything.
|
| +codesign -v "${framework}"
|
| +codesign -v "${helper_app}"
|
| +codesign -v "${helper_eh_app}"
|
| +codesign -v "${helper_np_app}"
|
|
|
| Property changes on: chrome_mac/Google Chrome Packaging/sign_versioned_dir.sh
|
| ___________________________________________________________________
|
| Added: svn:executable
|
| + *
|
|
|
|
|