Index: build/install-build-deps-android.sh |
diff --git a/build/install-build-deps-android.sh b/build/install-build-deps-android.sh |
index 6ae6e908d562fe09268bd33fa7395c7848125d26..cbf99312bed08da63594ae5801683478c56873dc 100755 |
--- a/build/install-build-deps-android.sh |
+++ b/build/install-build-deps-android.sh |
@@ -1,4 +1,4 @@ |
-#!/bin/bash -e |
+#!/bin/bash |
# 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,10 +8,6 @@ |
# 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 |
@@ -19,41 +15,18 @@ if ! uname -m | egrep -q "i686|x86_64"; then |
exit |
fi |
-lsb_release=$(lsb_release --codename --short) |
+# Exit if any commands fail. |
+set -e |
-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 |
+lsb_release=$(lsb_release --codename --short) |
# 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 |
@@ -65,39 +38,45 @@ else |
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 |
-# Install openjdk and openjre stuff |
-sudo apt-get -y install $java_pkgs |
- |
-# 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 |
+# Do our own error handling for java. |
+set +e |
+ |
+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 |
friedman1
2017/03/14 20:29:01
You can't do this on Trusty... java8 doesn't exist
|
+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 |
fi |
echo "install-build-deps-android.sh complete." |