| Index: chrome/installer/linux/sysroot_scripts/sysroot-creator.sh | 
| diff --git a/chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh b/chrome/installer/linux/sysroot_scripts/sysroot-creator.sh | 
| old mode 100755 | 
| new mode 100644 | 
| similarity index 70% | 
| rename from chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh | 
| rename to chrome/installer/linux/sysroot_scripts/sysroot-creator.sh | 
| index b14359ca147c283d1d37fd4fe6ba7a9fd2a86202..87a3e7051746e89184f7b3a81a141016587c65dc | 
| --- a/chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh | 
| +++ b/chrome/installer/linux/sysroot_scripts/sysroot-creator.sh | 
| @@ -1,13 +1,19 @@ | 
| -#!/bin/sh | 
| -# | 
| # Copyright (c) 2013 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 script builds a Debian Wheezy sysroot for building Google Chrome. | 
| +# This script should not be run directly but sourced by the other | 
| +# scripts (e.g. sysroot-creator-trusty.sh).  Its up to the parent scripts | 
| +# to define certain environment variables: e.g. | 
| +#  DIST=trusty | 
| +#  APT_REPO=http://archive.ubuntu.com/ubuntu | 
| +#  KEYRING_FILE=/usr/share/keyrings/ubuntu-archive-keyring.gpg | 
| +#  DEBIAN_PACKAGES="gcc libz libssl" | 
| + | 
| +#@ This script builds a Debian sysroot images for building Google Chrome. | 
| #@ | 
| #@  Generally this script is invoked as: | 
| -#@  sysroot-creator-debian.wheezy.sh <mode> <args>* | 
| +#@  sysroot-creator-<flavour>.sh <mode> <args>* | 
| #@  Available modes are shown below. | 
| #@ | 
| #@ List of modes: | 
| @@ -19,12 +25,34 @@ | 
| set -o nounset | 
| set -o errexit | 
|  | 
| -readonly SCRIPT_DIR=$(dirname $0) | 
| +SCRIPT_DIR=$(cd $(dirname $0) && pwd) | 
| + | 
| +if [ -z "${DIST:-}" ]; then | 
| +  echo "error: DIST not defined" | 
| +  exit 1 | 
| +fi | 
| + | 
| +if [ -z "${APT_REPO:-}" ]; then | 
| +  echo "error: APT_REPO not defined" | 
| +  exit 1 | 
| +fi | 
| + | 
| +if [ -z "${KEYRING_FILE:-}" ]; then | 
| +  echo "error: KEYRING_FILE not defined" | 
| +  exit 1 | 
| +fi | 
| + | 
| +if [ -z "${DEBIAN_PACKAGES:-}" ]; then | 
| +  echo "error: DEBIAN_PACKAGES not defined" | 
| +  exit 1 | 
| +fi | 
| + | 
| +readonly REPO_BASEDIR="${APT_REPO}/dists/${DIST}" | 
|  | 
| # This is where the staging sysroot is. | 
| -readonly INSTALL_ROOT_AMD64=$(pwd)/debian_wheezy_amd64_staging | 
| -readonly INSTALL_ROOT_I386=$(pwd)/debian_wheezy_i386_staging | 
| -readonly INSTALL_ROOT_ARM=$(pwd)/debian_wheezy_arm_staging | 
| +readonly INSTALL_ROOT_AMD64=$(pwd)/${DIST}_amd64_staging | 
| +readonly INSTALL_ROOT_I386=$(pwd)/${DIST}_i386_staging | 
| +readonly INSTALL_ROOT_ARM=$(pwd)/${DIST}_arm_staging | 
|  | 
| readonly REQUIRED_TOOLS="wget" | 
|  | 
| @@ -32,10 +60,6 @@ readonly REQUIRED_TOOLS="wget" | 
| # Package Config | 
| ###################################################################### | 
|  | 
| -# This is where we get all the debian packages from. | 
| -readonly DEBIAN_REPO=http://http.us.debian.org/debian | 
| -readonly REPO_BASEDIR="${DEBIAN_REPO}/dists/wheezy" | 
| - | 
| readonly RELEASE_FILE="Release" | 
| readonly RELEASE_FILE_GPG="Release.gpg" | 
| readonly RELEASE_LIST="${REPO_BASEDIR}/${RELEASE_FILE}" | 
| @@ -47,174 +71,9 @@ readonly PACKAGE_LIST_AMD64="${REPO_BASEDIR}/${PACKAGE_FILE_AMD64}" | 
| readonly PACKAGE_LIST_I386="${REPO_BASEDIR}/${PACKAGE_FILE_I386}" | 
| readonly PACKAGE_LIST_ARM="${REPO_BASEDIR}/${PACKAGE_FILE_ARM}" | 
|  | 
| -# Sysroot packages: these are the packages needed to build chrome. | 
| -# NOTE: When DEBIAN_PACKAGES is modified, the packagelist files must be updated | 
| -# by running this script in GeneratePackageList mode. | 
| -readonly DEBIAN_PACKAGES="\ | 
| -  comerr-dev \ | 
| -  gcc-4.6 \ | 
| -  krb5-multidev \ | 
| -  libasound2 \ | 
| -  libasound2-dev \ | 
| -  libatk1.0-0 \ | 
| -  libatk1.0-dev \ | 
| -  libavahi-client3 \ | 
| -  libavahi-common3 \ | 
| -  libc6 \ | 
| -  libc6-dev \ | 
| -  libcairo2 \ | 
| -  libcairo2-dev \ | 
| -  libcairo-gobject2 \ | 
| -  libcairo-script-interpreter2 \ | 
| -  libcap-dev \ | 
| -  libcap2 \ | 
| -  libcomerr2 \ | 
| -  libcups2 \ | 
| -  libcups2-dev \ | 
| -  libdbus-1-3 \ | 
| -  libdbus-1-dev \ | 
| -  libdbus-glib-1-2 \ | 
| -  libdrm2 \ | 
| -  libelf1 \ | 
| -  libelf-dev \ | 
| -  libexif12 \ | 
| -  libexif-dev \ | 
| -  libexpat1 \ | 
| -  libexpat1-dev \ | 
| -  libffi5 \ | 
| -  libfontconfig1 \ | 
| -  libfontconfig1-dev \ | 
| -  libfreetype6 \ | 
| -  libfreetype6-dev \ | 
| -  libgcc1 \ | 
| -  libgcc1 \ | 
| -  libgconf-2-4 \ | 
| -  libgconf2-4 \ | 
| -  libgconf2-dev \ | 
| -  libgcrypt11 \ | 
| -  libgcrypt11-dev \ | 
| -  libgdk-pixbuf2.0-0 \ | 
| -  libgdk-pixbuf2.0-dev \ | 
| -  libgl1-mesa-dev \ | 
| -  libgl1-mesa-glx \ | 
| -  libglapi-mesa \ | 
| -  libglib2.0-0 \ | 
| -  libglib2.0-dev \ | 
| -  libgnome-keyring0 \ | 
| -  libgnome-keyring-dev \ | 
| -  libgnutls26 \ | 
| -  libgnutls-dev \ | 
| -  libgnutls-openssl27 \ | 
| -  libgnutlsxx27 \ | 
| -  libgomp1 \ | 
| -  libgpg-error0 \ | 
| -  libgpg-error-dev \ | 
| -  libgssapi-krb5-2 \ | 
| -  libgssrpc4 \ | 
| -  libgtk2.0-0 \ | 
| -  libgtk2.0-dev \ | 
| -  libk5crypto3 \ | 
| -  libkadm5clnt-mit8 \ | 
| -  libkadm5srv-mit8 \ | 
| -  libkdb5-6 \ | 
| -  libkeyutils1 \ | 
| -  libkrb5-3 \ | 
| -  libkrb5-dev \ | 
| -  libkrb5support0 \ | 
| -  libnspr4 \ | 
| -  libnspr4-dev \ | 
| -  libnss3 \ | 
| -  libnss3-dev \ | 
| -  libnss-db \ | 
| -  liborbit2 \ | 
| -  libp11-2 \ | 
| -  libp11-kit0 \ | 
| -  libpam0g \ | 
| -  libpam0g-dev \ | 
| -  libpango1.0-0 \ | 
| -  libpango1.0-dev \ | 
| -  libpci3 \ | 
| -  libpci-dev \ | 
| -  libpcre3 \ | 
| -  libpcre3-dev \ | 
| -  libpcrecpp0 \ | 
| -  libpixman-1-0 \ | 
| -  libpixman-1-dev \ | 
| -  libpng12-0 \ | 
| -  libpng12-dev \ | 
| -  libpulse0 \ | 
| -  libpulse-dev \ | 
| -  libpulse-mainloop-glib0 \ | 
| -  libselinux1 \ | 
| -  libspeechd2 \ | 
| -  libspeechd-dev \ | 
| -  libssl1.0.0 \ | 
| -  libssl-dev \ | 
| -  libstdc++6 \ | 
| -  libstdc++6-4.6-dev \ | 
| -  libtasn1-3 \ | 
| -  libudev0 \ | 
| -  libudev-dev \ | 
| -  libx11-6 \ | 
| -  libx11-dev \ | 
| -  libx11-xcb1 \ | 
| -  libxau6 \ | 
| -  libxau-dev \ | 
| -  libxcb1 \ | 
| -  libxcb1-dev \ | 
| -  libxcb-glx0 \ | 
| -  libxcb-render0 \ | 
| -  libxcb-render0-dev \ | 
| -  libxcb-shm0 \ | 
| -  libxcb-shm0-dev \ | 
| -  libxcomposite1 \ | 
| -  libxcomposite-dev \ | 
| -  libxcursor1 \ | 
| -  libxcursor-dev \ | 
| -  libxdamage1 \ | 
| -  libxdamage-dev \ | 
| -  libxdmcp6 \ | 
| -  libxext6 \ | 
| -  libxext-dev \ | 
| -  libxfixes3 \ | 
| -  libxfixes-dev \ | 
| -  libxi6 \ | 
| -  libxi-dev \ | 
| -  libxinerama1 \ | 
| -  libxinerama-dev \ | 
| -  libxrandr2 \ | 
| -  libxrandr-dev \ | 
| -  libxrender1 \ | 
| -  libxrender-dev \ | 
| -  libxss1 \ | 
| -  libxss-dev \ | 
| -  libxt6 \ | 
| -  libxt-dev \ | 
| -  libxtst6 \ | 
| -  libxtst-dev \ | 
| -  libxxf86vm1 \ | 
| -  linux-libc-dev \ | 
| -  mesa-common-dev \ | 
| -  speech-dispatcher \ | 
| -  x11proto-composite-dev \ | 
| -  x11proto-core-dev \ | 
| -  x11proto-damage-dev \ | 
| -  x11proto-fixes-dev \ | 
| -  x11proto-input-dev \ | 
| -  x11proto-kb-dev \ | 
| -  x11proto-randr-dev \ | 
| -  x11proto-record-dev \ | 
| -  x11proto-render-dev \ | 
| -  x11proto-scrnsaver-dev \ | 
| -  x11proto-xext-dev \ | 
| -  zlib1g \ | 
| -  zlib1g-dev" | 
| - | 
| -DEBIAN_PACKAGES_X86="libquadmath0" | 
| - | 
| -readonly DEBIAN_DEP_LIST_AMD64="packagelist.debian.wheezy.amd64" | 
| -readonly DEBIAN_DEP_LIST_I386="packagelist.debian.wheezy.i386" | 
| -readonly DEBIAN_DEP_LIST_ARM="packagelist.debian.wheezy.arm" | 
| +readonly DEBIAN_DEP_LIST_AMD64="packagelist.${DIST}.amd64" | 
| +readonly DEBIAN_DEP_LIST_I386="packagelist.${DIST}.i386" | 
| +readonly DEBIAN_DEP_LIST_ARM="packagelist.${DIST}.arm" | 
|  | 
| ###################################################################### | 
| # Helper | 
| @@ -228,14 +87,14 @@ Banner() { | 
|  | 
|  | 
| SubBanner() { | 
| -  echo "......................................................................" | 
| +  echo "----------------------------------------------------------------------" | 
| echo $* | 
| -  echo "......................................................................" | 
| +  echo "----------------------------------------------------------------------" | 
| } | 
|  | 
|  | 
| Usage() { | 
| -  egrep "^#@" "$0" | cut --bytes=3- | 
| +  egrep "^#@" "${BASH_SOURCE[0]}" | cut --bytes=3- | 
| } | 
|  | 
|  | 
| @@ -249,7 +108,8 @@ DownloadOrCopy() { | 
| echo "$1" | grep -qs ^http:// && HTTP=1 | 
| if [ "$HTTP" = "1" ]; then | 
| SubBanner "downloading from $1 -> $2" | 
| -    wget "$1" -O "$2" | 
| +    wget "$1" -O "${2}.partial" | 
| +    mv "${2}.partial" $2 | 
| else | 
| SubBanner "copying from $1" | 
| cp "$1" "$2" | 
| @@ -283,36 +143,24 @@ SetEnvironmentVariables() { | 
| esac | 
| } | 
|  | 
| -Cleanup() { | 
| -  echo "Cleaning: $TMP" | 
| -  rm -rf "$TMP" | 
| -} | 
|  | 
| # some sanity checks to make sure this script is run from the right place | 
| # with the right tools | 
| SanityCheck() { | 
| Banner "Sanity Checks" | 
|  | 
| -  if [ "$(basename $(pwd))" != "sysroot_scripts" ] ; then | 
| -    echo -n "ERROR: run this script from " | 
| -    echo "src/chrome/installer/linux/sysroot_scripts" | 
| -    exit 1 | 
| -  fi | 
| - | 
| if ! mkdir -p "${INSTALL_ROOT}" ; then | 
| echo "ERROR: ${INSTALL_ROOT} can't be created." | 
| exit 1 | 
| fi | 
|  | 
| -  TMP=$(mktemp -q -t -d debian-wheezy-XXXXXX) | 
| -  if [ -z "$TMP" ]; then | 
| -    echo "ERROR: temp dir can't be created." | 
| -    exit 1 | 
| -  fi | 
| -  trap Cleanup 0 | 
| +  CHROME_DIR=$(cd "${SCRIPT_DIR}/../../.." && pwd) | 
| +  BUILD_DIR=${CHROME_DIR}/out/sysroot-build/${DIST} | 
| +  mkdir -p ${BUILD_DIR} | 
| +  echo "Using build directory: ${BUILD_DIR}" | 
|  | 
| for tool in ${REQUIRED_TOOLS} ; do | 
| -    if ! which ${tool} ; then | 
| +    if ! which ${tool} > /dev/null ; then | 
| echo "Required binary $tool not found." | 
| echo "Exiting." | 
| exit 1 | 
| @@ -357,36 +205,33 @@ ExtractPackageBz2() { | 
|  | 
| GeneratePackageListAmd64() { | 
| local output_file="$1" | 
| -  local package_list="${TMP}/Packages.wheezy_amd64.bz2" | 
| -  local tmp_package_list="${TMP}/Packages.wheezy_amd64" | 
| +  local package_list="${BUILD_DIR}/Packages.${DIST}_amd64.bz2" | 
| +  local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_amd64" | 
| DownloadOrCopy "${PACKAGE_LIST_AMD64}" "${package_list}" | 
| VerifyPackageListing "${PACKAGE_FILE_AMD64}" "${package_list}" | 
| ExtractPackageBz2 "$package_list" "$tmp_package_list" | 
| - | 
| GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES} | 
| -  ${DEBIAN_PACKAGES_X86}" | 
| +    ${DEBIAN_PACKAGES_X86}" | 
| } | 
|  | 
| GeneratePackageListI386() { | 
| local output_file="$1" | 
| -  local package_list="${TMP}/Packages.wheezy_i386.bz2" | 
| -  local tmp_package_list="${TMP}/Packages.wheezy_amd64" | 
| +  local package_list="${BUILD_DIR}/Packages.${DIST}_i386.bz2" | 
| +  local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_amd64" | 
| DownloadOrCopy "${PACKAGE_LIST_I386}" "${package_list}" | 
| VerifyPackageListing "${PACKAGE_FILE_I386}" "${package_list}" | 
| ExtractPackageBz2 "$package_list" "$tmp_package_list" | 
| - | 
| GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES} | 
| -  ${DEBIAN_PACKAGES_X86}" | 
| +    ${DEBIAN_PACKAGES_X86}" | 
| } | 
|  | 
| GeneratePackageListARM() { | 
| local output_file="$1" | 
| -  local package_list="${TMP}/Packages.wheezy_arm.bz2" | 
| -  local tmp_package_list="${TMP}/Packages.wheezy_arm" | 
| +  local package_list="${BUILD_DIR}/Packages.${DIST}_arm.bz2" | 
| +  local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_arm" | 
| DownloadOrCopy "${PACKAGE_LIST_ARM}" "${package_list}" | 
| VerifyPackageListing "${PACKAGE_FILE_ARM}" "${package_list}" | 
| ExtractPackageBz2 "$package_list" "$tmp_package_list" | 
| - | 
| GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}" | 
| } | 
|  | 
| @@ -480,11 +325,11 @@ HacksAndPatchesARM() { | 
| InstallIntoSysroot() { | 
| Banner "Install Libs And Headers Into Jail" | 
|  | 
| -  mkdir -p ${TMP}/debian-packages | 
| +  mkdir -p ${BUILD_DIR}/debian-packages | 
| mkdir -p ${INSTALL_ROOT} | 
| while (( "$#" )); do | 
| local file="$1" | 
| -    local package="${TMP}/debian-packages/${file##*/}" | 
| +    local package="${BUILD_DIR}/debian-packages/${file##*/}" | 
| shift | 
| local sha256sum="$1" | 
| shift | 
| @@ -494,7 +339,7 @@ InstallIntoSysroot() { | 
| fi | 
|  | 
| Banner "Installing ${file}" | 
| -    DownloadOrCopy ${DEBIAN_REPO}/pool/${file} ${package} | 
| +    DownloadOrCopy ${APT_REPO}/pool/${file} ${package} | 
| if [ ! -s "${package}" ] ; then | 
| echo | 
| echo "ERROR: bad package ${package}" | 
| @@ -504,7 +349,7 @@ InstallIntoSysroot() { | 
|  | 
| SubBanner "Extracting to ${INSTALL_ROOT}" | 
| dpkg --fsys-tarfile ${package}\ | 
| -      | tar -xvf - --exclude=./usr/share -C ${INSTALL_ROOT} | 
| +      | tar -xf - --exclude=./usr/share -C ${INSTALL_ROOT} | 
| done | 
| } | 
|  | 
| @@ -558,12 +403,12 @@ CleanupJailSymlinks() { | 
| BuildSysrootAmd64() { | 
| CheckBuildSysrootArgs $@ | 
| ClearInstallDir | 
| -  local package_file="$TMP/package_with_sha256sum_amd64" | 
| +  local package_file="$BUILD_DIR/package_with_sha256sum_amd64" | 
| GeneratePackageListAmd64 "$package_file" | 
| local files_and_sha256sums="$(cat ${package_file})" | 
| StripChecksumsFromPackageList "$package_file" | 
| VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_AMD64" | 
| -  InstallIntoSysroot "${files_and_sha256sums}" | 
| +  InstallIntoSysroot ${files_and_sha256sums} | 
| CleanupJailSymlinks | 
| HacksAndPatchesAmd64 | 
| CreateTarBall "$1" | 
| @@ -576,12 +421,12 @@ BuildSysrootAmd64() { | 
| BuildSysrootI386() { | 
| CheckBuildSysrootArgs $@ | 
| ClearInstallDir | 
| -  local package_file="$TMP/package_with_sha256sum_i386" | 
| +  local package_file="$BUILD_DIR/package_with_sha256sum_i386" | 
| GeneratePackageListI386 "$package_file" | 
| local files_and_sha256sums="$(cat ${package_file})" | 
| StripChecksumsFromPackageList "$package_file" | 
| VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_I386" | 
| -  InstallIntoSysroot "${files_and_sha256sums}" | 
| +  InstallIntoSysroot ${files_and_sha256sums} | 
| CleanupJailSymlinks | 
| HacksAndPatchesI386 | 
| CreateTarBall "$1" | 
| @@ -594,12 +439,13 @@ BuildSysrootI386() { | 
| BuildSysrootARM() { | 
| CheckBuildSysrootArgs $@ | 
| ClearInstallDir | 
| -  local package_file="$TMP/package_with_sha256sum_arm" | 
| +  local package_file="$BUILD_DIR/package_with_sha256sum_arm" | 
| GeneratePackageListARM "$package_file" | 
| local files_and_sha256sums="$(cat ${package_file})" | 
| StripChecksumsFromPackageList "$package_file" | 
| VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_ARM" | 
| -  InstallIntoSysroot "${files_and_sha256sums}" | 
| +  APT_REPO=${APR_REPO_ARM:=$APT_REPO} | 
| +  InstallIntoSysroot ${files_and_sha256sums} | 
| CleanupJailSymlinks | 
| HacksAndPatchesARM | 
| CreateTarBall "$1" | 
| @@ -611,7 +457,7 @@ BuildSysrootARM() { | 
| #     Make sure the Debian GPG keys exist. Otherwise print a helpful message. | 
| # | 
| CheckForDebianGPGKeyring() { | 
| -  if [ ! -e "/usr/share/keyrings/debian-archive-keyring.gpg" ]; then | 
| +  if [ ! -e "$KEYRING_FILE" ]; then | 
| echo "Debian GPG keys missing. Install the debian-archive-keyring package." | 
| exit 1 | 
| fi | 
| @@ -625,16 +471,15 @@ CheckForDebianGPGKeyring() { | 
| VerifyPackageListing() { | 
| local file_path=$1 | 
| local output_file=$2 | 
| -  local release_file="${TMP}/${RELEASE_FILE}" | 
| -  local release_file_gpg="${TMP}/${RELEASE_FILE_GPG}" | 
| +  local release_file="${BUILD_DIR}/${RELEASE_FILE}" | 
| +  local release_file_gpg="${BUILD_DIR}/${RELEASE_FILE_GPG}" | 
|  | 
| CheckForDebianGPGKeyring | 
|  | 
| DownloadOrCopy ${RELEASE_LIST} ${release_file} | 
| DownloadOrCopy ${RELEASE_LIST_GPG} ${release_file_gpg} | 
| echo "Verifying: ${release_file} with ${release_file_gpg}" | 
| -  gpgv --keyring /usr/share/keyrings/debian-archive-keyring.gpg \ | 
| -       ${release_file_gpg} ${release_file} | 
| +  gpgv --keyring $KEYRING_FILE ${release_file_gpg} ${release_file} | 
|  | 
| echo "Verifying: ${output_file}" | 
| local checksums=$(grep ${file_path} ${release_file} | cut -d " " -f 2) | 
| @@ -651,7 +496,7 @@ VerifyPackageListing() { | 
| # | 
| # GeneratePackageList | 
| # | 
| -#     Looks up package names in ${TMP}/Packages and write list of URLs | 
| +#     Looks up package names in ${BUILD_DIR}/Packages and write list of URLs | 
| #     to output file. | 
| # | 
| GeneratePackageList() { | 
|  |