| Index: build/install-build-deps-android.sh
|
| diff --git a/build/install-build-deps-android.sh b/build/install-build-deps-android.sh
|
| index cbf99312bed08da63594ae5801683478c56873dc..6ae6e908d562fe09268bd33fa7395c7848125d26 100755
|
| --- a/build/install-build-deps-android.sh
|
| +++ b/build/install-build-deps-android.sh
|
| @@ -1,4 +1,4 @@
|
| -#!/bin/bash
|
| +#!/bin/bash -e
|
|
|
| # Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| # Use of this source code is governed by a BSD-style license that can be
|
| @@ -8,6 +8,10 @@
|
| # items requiring sudo privileges.
|
| # See https://www.chromium.org/developers/how-tos/android-build-instructions
|
|
|
| +# This script installs the sun-java6 packages (bin, jre and jdk). Sun requires
|
| +# a license agreement, so upon installation it will prompt the user. To get
|
| +# past the curses-based dialog press TAB <ret> TAB <ret> to agree.
|
| +
|
| args="$@"
|
|
|
| if ! uname -m | egrep -q "i686|x86_64"; then
|
| @@ -15,17 +19,40 @@
|
| exit
|
| fi
|
|
|
| -# Exit if any commands fail.
|
| -set -e
|
| +lsb_release=$(lsb_release --codename --short)
|
|
|
| -lsb_release=$(lsb_release --codename --short)
|
| +case $lsb_release in
|
| + xenial|yakkety)
|
| + java_alternative="java-1.8.0-openjdk-amd64"
|
| + java_pkgs="openjdk-8-jre openjdk-8-jdk"
|
| + ;;
|
| + *)
|
| + java_alternative="java-1.7.0-openjdk-amd64"
|
| + java_pkgs="openjdk-7-jre openjdk-7-jdk"
|
| + ;;
|
| +esac
|
|
|
| # Install first the default Linux build deps.
|
| "$(dirname "${BASH_SOURCE[0]}")/install-build-deps.sh" \
|
| --no-syms --lib32 --no-arm --no-chromeos-fonts --no-nacl --no-prompt "${args}"
|
|
|
| +# The temporary directory used to store output of update-java-alternatives
|
| +TEMPDIR=$(mktemp -d)
|
| +cleanup() {
|
| + local status=${?}
|
| + trap - EXIT
|
| + rm -rf "${TEMPDIR}"
|
| + exit ${status}
|
| +}
|
| +trap cleanup EXIT
|
| +
|
| # Fix deps
|
| sudo apt-get -f install
|
| +
|
| +# Install deps
|
| +# This step differs depending on what Ubuntu release we are running
|
| +# on since the package names are different, and Sun's Java must
|
| +# be installed manually on late-model versions.
|
|
|
| # common
|
| sudo apt-get -y install lib32z1 lighttpd python-pexpect xvfb x11-utils
|
| @@ -38,45 +65,39 @@
|
| sudo apt-get -y install libncurses5:i386 libstdc++6:i386 zlib1g:i386
|
| fi
|
|
|
| -# Required by //components/cronet/tools/generate_javadoc.py
|
| -# TODO(375324): Stop requiring ANT.
|
| sudo apt-get -y install ant
|
|
|
| # Required for apk-patch-size-estimator
|
| sudo apt-get -y install bsdiff
|
|
|
| -# Do our own error handling for java.
|
| -set +e
|
| +# Install openjdk and openjre stuff
|
| +sudo apt-get -y install $java_pkgs
|
|
|
| -function IsJava8() {
|
| - # Arg is either "java" or "javac"
|
| - $1 -version 2>&1 | grep -q '1\.8'
|
| -}
|
| -
|
| -if ! (IsJava8 java && IsJava8 javac); then
|
| - sudo apt-get -y install openjdk-8-jre openjdk-8-jdk
|
| -fi
|
| -
|
| -# There can be several reasons why java8 is not default despite being installed.
|
| -# Just show an error and exit.
|
| -if ! (IsJava8 java && IsJava8 javac); then
|
| - echo
|
| - echo "Automatic java installation failed."
|
| - echo '`java -version` reports:'
|
| - java -version
|
| - echo
|
| - echo '`javac -version` reports:'
|
| - javac -version
|
| - echo
|
| - echo "Please ensure that JDK 8 is installed and resolves first in your PATH."
|
| - echo -n '`which java` reports: '
|
| - which java
|
| - echo -n '`which javac` reports: '
|
| - which javac
|
| - echo
|
| - echo "You might also try running:"
|
| - echo " sudo update-java-alternatives -s java-1.8.0-openjdk-amd64"
|
| - exit 1
|
| +# Switch version of Java to openjdk 7.
|
| +# Some Java plugins (e.g. for firefox, mozilla) are not required to build, and
|
| +# thus are treated only as warnings. Any errors in updating java alternatives
|
| +# which are not '*-javaplugin.so' will cause errors and stop the script from
|
| +# completing successfully.
|
| +if ! sudo update-java-alternatives -s $java_alternative \
|
| + >& "${TEMPDIR}"/update-java-alternatives.out
|
| +then
|
| + # Check that there are the expected javaplugin.so errors for the update
|
| + if grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out >& \
|
| + /dev/null
|
| + then
|
| + # Print as warnings all the javaplugin.so errors
|
| + echo 'WARNING: java-6-sun has no alternatives for the following plugins:'
|
| + grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
|
| + fi
|
| + # Check if there are any errors that are not javaplugin.so
|
| + if grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out \
|
| + >& /dev/null
|
| + then
|
| + # If there are non-javaplugin.so errors, treat as errors and exit
|
| + echo 'ERRORS: Failed to update alternatives for java-6-sun:'
|
| + grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
|
| + exit 1
|
| + fi
|
| fi
|
|
|
| echo "install-build-deps-android.sh complete."
|
|
|