Home | History | Annotate | Download | only in build
      1 #!/bin/bash -e
      2 
      3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 
      7 # Script to install everything needed to build chromium on android that
      8 # requires sudo privileges.
      9 # See http://code.google.com/p/chromium/wiki/AndroidBuildInstructions
     10 
     11 # This script installs the sun-java6 packages (bin, jre and jdk). Sun requires
     12 # a license agreement, so upon installation it will prompt the user. To get
     13 # past the curses-based dialog press TAB <ret> TAB <ret> to agree.
     14 
     15 if ! uname -m | egrep -q "i686|x86_64"; then
     16   echo "Only x86 architectures are currently supported" >&2
     17   exit
     18 fi
     19 
     20 if [ "x$(id -u)" != x0 ]; then
     21   echo "Running as non-root user."
     22   echo "You might have to enter your password one or more times for 'sudo'."
     23   echo
     24 fi
     25 
     26 # The temporary directory used to store output of update-java-alternatives
     27 TEMPDIR=$(mktemp -d)
     28 cleanup() {
     29   local status=${?}
     30   trap - EXIT
     31   rm -rf "${TEMPDIR}"
     32   exit ${status}
     33 }
     34 trap cleanup EXIT
     35 
     36 sudo apt-get update
     37 
     38 # Fix deps
     39 sudo apt-get -f install
     40 
     41 # Install deps
     42 # This step differs depending on what Ubuntu release we are running
     43 # on since the package names are different, and Sun's Java must
     44 # be installed manually on late-model versions.
     45 
     46 # common
     47 sudo apt-get -y install lighttpd python-pexpect xvfb x11-utils
     48 
     49 # Few binaries in the Android SDK require 32-bit libraries on the host.
     50 sudo apt-get -y install lib32z1 g++-multilib
     51 
     52 if /usr/bin/lsb_release -r -s | grep -q "12."; then
     53   # Ubuntu 12.x
     54   sudo apt-get -y install ant
     55 
     56   # Java can not be installed via ppa on Ubuntu 12.04+ so we'll
     57   # simply check to see if it has been setup properly -- if not
     58   # let the user know.
     59 
     60   if ! java -version 2>&1 | grep -q "Java(TM)"; then
     61     echo "****************************************************************"
     62     echo "You need to install the Oracle Java SDK from http://goo.gl/uPRSq"
     63     echo "and configure it as the default command-line Java environment."
     64     echo "****************************************************************"
     65     exit
     66   fi
     67 
     68 else
     69   # Ubuntu 10.x
     70 
     71   sudo apt-get -y install ant1.8
     72 
     73   # Install sun-java6 stuff
     74   sudo apt-get -y install sun-java6-bin sun-java6-jre sun-java6-jdk
     75 
     76   # Switch version of Java to java-6-sun
     77   # Sun's java is missing certain Java plugins (e.g. for firefox, mozilla).
     78   # These are not required to build, and thus are treated only as warnings.
     79   # Any errors in updating java alternatives which are not '*-javaplugin.so'
     80   # will cause errors and stop the script from completing successfully.
     81   if ! sudo update-java-alternatives -s java-6-sun \
     82             >& "${TEMPDIR}"/update-java-alternatives.out
     83   then
     84     # Check that there are the expected javaplugin.so errors for the update
     85     if grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out >& \
     86            /dev/null
     87     then
     88       # Print as warnings all the javaplugin.so errors
     89       echo 'WARNING: java-6-sun has no alternatives for the following plugins:'
     90       grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
     91     fi
     92     # Check if there are any errors that are not javaplugin.so
     93     if grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out \
     94            >& /dev/null
     95     then
     96       # If there are non-javaplugin.so errors, treat as errors and exit
     97       echo 'ERRORS: Failed to update alternatives for java-6-sun:'
     98       grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
     99       exit 1
    100     fi
    101   fi
    102 fi
    103 
    104 echo "install-build-deps-android.sh complete."
    105