Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Unified Diff: build/install-build-deps-android.sh

Issue 2858063002: Revert of Android: Update docs to say Java 8 is required (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | docs/android_build_instructions.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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."
« no previous file with comments | « no previous file | docs/android_build_instructions.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698