Index: build/install-build-deps.sh |
diff --git a/build/install-build-deps.sh b/build/install-build-deps.sh |
index cb37eb6dc70085fbc1c03a1717802b1fdeb34e20..0f2c3740cff4aa7bcc7cc4e14477fdb5e5f20119 100755 |
--- a/build/install-build-deps.sh |
+++ b/build/install-build-deps.sh |
@@ -26,6 +26,45 @@ usage() { |
exit 1 |
} |
+# Waits for the user to press 'Y' or 'N'. Either uppercase of lowercase is |
+# accepted. Returns 0 for 'Y' and 1 for 'N'. If an optional parameter has |
+# been provided to yes_no(), the function also accepts RETURN as a user input. |
+# The parameter specifies the exit code that should be returned in that case. |
+# The function will echo the user's selection followed by a newline character. |
+# Users can abort the function by pressing CTRL-C. This will call "exit 1". |
+yes_no() { |
+ if [ 0 -ne "${do_default-0}" ] ; then |
+ [ $1 -eq 0 ] && echo "Y" || echo "N" |
+ return $1 |
+ fi |
+ local c |
+ while :; do |
+ c="$(trap 'stty echo -iuclc icanon 2>/dev/null' EXIT INT TERM QUIT |
+ stty -echo iuclc -icanon 2>/dev/null |
+ dd count=1 bs=1 2>/dev/null | od -An -tx1)" |
+ case "$c" in |
+ " 0a") if [ -n "$1" ]; then |
+ [ $1 -eq 0 ] && echo "Y" || echo "N" |
+ return $1 |
+ fi |
+ ;; |
+ " 79") echo "Y" |
+ return 0 |
+ ;; |
+ " 6e") echo "N" |
+ return 1 |
+ ;; |
+ "") echo "Aborted" >&2 |
+ exit 1 |
+ ;; |
+ *) # The user pressed an unrecognized key. As we are not echoing |
+ # any incorrect user input, alert the user by ringing the bell. |
+ (tput bel) 2>/dev/null |
+ ;; |
+ esac |
+ done |
+} |
+ |
# Checks whether a particular package is available in the repos. |
# USAGE: $ package_exists <package name> |
package_exists() { |
@@ -152,9 +191,45 @@ fi |
lib32_list="linux-libc-dev:i386" |
# arm cross toolchain packages needed to build chrome on armhf |
-arm_list="libc6-dev-armhf-cross |
- linux-libc-dev-armhf-cross |
- g++-arm-linux-gnueabihf" |
+EM_REPO="deb http://emdebian.org/tools/debian/ jessie main" |
+EM_SOURCE=$(cat <<EOF |
+# Repo added by Chromium $0 |
+${EM_REPO} |
+# deb-src http://emdebian.org/tools/debian/ jessie main |
+EOF |
+) |
+EM_ARCHIVE_KEY_FINGER="084C6C6F39159EDB67969AA87DE089671804772E" |
+GPP_ARM_PACKAGE="g++-arm-linux-gnueabihf" |
+case $lsb_release in |
+ "jessie") |
+ eval $(apt-config shell APT_SOURCESDIR 'Dir::Etc::sourceparts/d') |
+ CROSSTOOLS_LIST="${APT_SOURCESDIR}/crosstools.list" |
+ arm_list="libc6-dev:armhf |
+ linux-libc-dev:armhf" |
+ if test "$do_inst_arm" = "1"; then |
+ if $(dpkg-query -W ${GPP_ARM_PACKAGE} &>/dev/null); then |
+ arm_list+=" ${GPP_ARM_PACKAGE}" |
+ else |
+ echo "The Debian Cross-toolchains repository is necessary to" |
+ echo "cross-compile Chromium for arm." |
+ echo -n "Do you want me to add it for you (y/N) " |
+ if yes_no 1; then |
+ gpg --keyserver pgp.mit.edu --recv-keys ${EM_ARCHIVE_KEY_FINGER} |
+ gpg -a --export ${EM_ARCHIVE_KEY_FINGER} | sudo apt-key add - |
+ if ! grep "^${EM_REPO}" "${CROSSTOOLS_LIST}" &>/dev/null; then |
+ echo "${EM_SOURCE}" | sudo tee -a "${CROSSTOOLS_LIST}" >/dev/null |
+ fi |
+ arm_list+=" ${GPP_ARM_PACKAGE}" |
+ fi |
+ fi |
+ fi |
+ ;; |
+ *) |
+ arm_list="libc6-dev-armhf-cross |
+ linux-libc-dev-armhf-cross |
+ ${GPP_ARM_PACKAGE}" |
+ ;; |
+esac |
# Work around for dependency issue Ubuntu/Trusty: http://crbug.com/435056 |
case $lsb_release in |
@@ -285,45 +360,6 @@ if file -L /sbin/init | grep -q 'ELF 64-bit'; then |
lib32_list="$lib32_list $multilib_package" |
fi |
-# Waits for the user to press 'Y' or 'N'. Either uppercase of lowercase is |
-# accepted. Returns 0 for 'Y' and 1 for 'N'. If an optional parameter has |
-# been provided to yes_no(), the function also accepts RETURN as a user input. |
-# The parameter specifies the exit code that should be returned in that case. |
-# The function will echo the user's selection followed by a newline character. |
-# Users can abort the function by pressing CTRL-C. This will call "exit 1". |
-yes_no() { |
- if [ 0 -ne "${do_default-0}" ] ; then |
- [ $1 -eq 0 ] && echo "Y" || echo "N" |
- return $1 |
- fi |
- local c |
- while :; do |
- c="$(trap 'stty echo -iuclc icanon 2>/dev/null' EXIT INT TERM QUIT |
- stty -echo iuclc -icanon 2>/dev/null |
- dd count=1 bs=1 2>/dev/null | od -An -tx1)" |
- case "$c" in |
- " 0a") if [ -n "$1" ]; then |
- [ $1 -eq 0 ] && echo "Y" || echo "N" |
- return $1 |
- fi |
- ;; |
- " 79") echo "Y" |
- return 0 |
- ;; |
- " 6e") echo "N" |
- return 1 |
- ;; |
- "") echo "Aborted" >&2 |
- exit 1 |
- ;; |
- *) # The user pressed an unrecognized key. As we are not echoing |
- # any incorrect user input, alert the user by ringing the bell. |
- (tput bel) 2>/dev/null |
- ;; |
- esac |
- done |
-} |
- |
if test "$do_inst_syms" = "" && test 0 -eq ${do_quick_check-0} |
then |
echo "This script installs all tools and libraries needed to build Chromium." |
@@ -404,6 +440,9 @@ if test "$do_inst_lib32" = "1" || test "$do_inst_nacl" = "1"; then |
if [[ ! $lsb_release =~ (precise) ]]; then |
sudo dpkg --add-architecture i386 |
fi |
+ if [[ $lsb_release = "jessie" ]]; then |
+ sudo dpkg --add-architecture armhf |
+ fi |
fi |
sudo apt-get update |