| Index: chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh
|
| diff --git a/chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh b/chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh
|
| index fb3e0436cbf8c8b0ec85b3f063f20d780016257b..b14359ca147c283d1d37fd4fe6ba7a9fd2a86202 100755
|
| --- a/chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh
|
| +++ b/chrome/installer/linux/sysroot_scripts/sysroot-creator-debian.wheezy.sh
|
| @@ -24,6 +24,7 @@ readonly SCRIPT_DIR=$(dirname $0)
|
| # This is where the staging sysroot is.
|
| readonly INSTALL_ROOT_AMD64=$(pwd)/debian_wheezy_amd64_staging
|
| readonly INSTALL_ROOT_I386=$(pwd)/debian_wheezy_i386_staging
|
| +readonly INSTALL_ROOT_ARM=$(pwd)/debian_wheezy_arm_staging
|
|
|
| readonly REQUIRED_TOOLS="wget"
|
|
|
| @@ -41,8 +42,10 @@ readonly RELEASE_LIST="${REPO_BASEDIR}/${RELEASE_FILE}"
|
| readonly RELEASE_LIST_GPG="${REPO_BASEDIR}/${RELEASE_FILE_GPG}"
|
| readonly PACKAGE_FILE_AMD64="main/binary-amd64/Packages.bz2"
|
| readonly PACKAGE_FILE_I386="main/binary-i386/Packages.bz2"
|
| +readonly PACKAGE_FILE_ARM="main/binary-armhf/Packages.bz2"
|
| readonly PACKAGE_LIST_AMD64="${REPO_BASEDIR}/${PACKAGE_FILE_AMD64}"
|
| readonly PACKAGE_LIST_I386="${REPO_BASEDIR}/${PACKAGE_FILE_I386}"
|
| +readonly PACKAGE_LIST_ARM="${REPO_BASEDIR}/${PACKAGE_FILE_ARM}"
|
|
|
| # Sysroot packages: these are the packages needed to build chrome.
|
| # NOTE: When DEBIAN_PACKAGES is modified, the packagelist files must be updated
|
| @@ -142,7 +145,6 @@ readonly DEBIAN_PACKAGES="\
|
| libpulse0 \
|
| libpulse-dev \
|
| libpulse-mainloop-glib0 \
|
| - libquadmath0 \
|
| libselinux1 \
|
| libspeechd2 \
|
| libspeechd-dev \
|
| @@ -208,8 +210,11 @@ readonly DEBIAN_PACKAGES="\
|
| zlib1g \
|
| zlib1g-dev"
|
|
|
| -readonly DEBIAN_DEP_LIST_AMD64="${SCRIPT_DIR}/packagelist.debian.wheezy.amd64"
|
| -readonly DEBIAN_DEP_LIST_I386="${SCRIPT_DIR}/packagelist.debian.wheezy.i386"
|
| +DEBIAN_PACKAGES_X86="libquadmath0"
|
| +
|
| +readonly DEBIAN_DEP_LIST_AMD64="packagelist.debian.wheezy.amd64"
|
| +readonly DEBIAN_DEP_LIST_I386="packagelist.debian.wheezy.i386"
|
| +readonly DEBIAN_DEP_LIST_ARM="packagelist.debian.wheezy.arm"
|
|
|
| ######################################################################
|
| # Helper
|
| @@ -258,7 +263,13 @@ SetEnvironmentVariables() {
|
| if [ -z "$ARCH" ]; then
|
| echo $1 | grep -qs I386$ && ARCH=I386
|
| fi
|
| + if [ -z "$ARCH" ]; then
|
| + echo $1 | grep -qs ARM$ && ARCH=ARM
|
| + fi
|
| case "$ARCH" in
|
| + ARM)
|
| + INSTALL_ROOT="$INSTALL_ROOT_ARM";
|
| + ;;
|
| AMD64)
|
| INSTALL_ROOT="$INSTALL_ROOT_AMD64";
|
| ;;
|
| @@ -273,6 +284,7 @@ SetEnvironmentVariables() {
|
| }
|
|
|
| Cleanup() {
|
| + echo "Cleaning: $TMP"
|
| rm -rf "$TMP"
|
| }
|
|
|
| @@ -311,7 +323,7 @@ SanityCheck() {
|
|
|
| ChangeDirectory() {
|
| # Change directory to where this script is.
|
| - cd $(dirname "$0")
|
| + cd ${SCRIPT_DIR}
|
| }
|
|
|
|
|
| @@ -346,21 +358,36 @@ ExtractPackageBz2() {
|
| GeneratePackageListAmd64() {
|
| local output_file="$1"
|
| local package_list="${TMP}/Packages.wheezy_amd64.bz2"
|
| - DownloadOrCopy ${PACKAGE_LIST_AMD64} ${package_list}
|
| - VerifyPackageListing ${PACKAGE_FILE_AMD64} ${package_list}
|
| - ExtractPackageBz2 "$package_list" "${TMP}/Packages"
|
| + local tmp_package_list="${TMP}/Packages.wheezy_amd64"
|
| + DownloadOrCopy "${PACKAGE_LIST_AMD64}" "${package_list}"
|
| + VerifyPackageListing "${PACKAGE_FILE_AMD64}" "${package_list}"
|
| + ExtractPackageBz2 "$package_list" "$tmp_package_list"
|
|
|
| - GeneratePackageList "$output_file" "${DEBIAN_PACKAGES}"
|
| + GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}
|
| + ${DEBIAN_PACKAGES_X86}"
|
| }
|
|
|
| GeneratePackageListI386() {
|
| local output_file="$1"
|
| local package_list="${TMP}/Packages.wheezy_i386.bz2"
|
| - DownloadOrCopy ${PACKAGE_LIST_I386} ${package_list}
|
| - VerifyPackageListing ${PACKAGE_FILE_I386} ${package_list}
|
| - ExtractPackageBz2 "$package_list" "${TMP}/Packages"
|
| + local tmp_package_list="${TMP}/Packages.wheezy_amd64"
|
| + DownloadOrCopy "${PACKAGE_LIST_I386}" "${package_list}"
|
| + VerifyPackageListing "${PACKAGE_FILE_I386}" "${package_list}"
|
| + ExtractPackageBz2 "$package_list" "$tmp_package_list"
|
| +
|
| + GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}
|
| + ${DEBIAN_PACKAGES_X86}"
|
| +}
|
| +
|
| +GeneratePackageListARM() {
|
| + local output_file="$1"
|
| + local package_list="${TMP}/Packages.wheezy_arm.bz2"
|
| + local tmp_package_list="${TMP}/Packages.wheezy_arm"
|
| + DownloadOrCopy "${PACKAGE_LIST_ARM}" "${package_list}"
|
| + VerifyPackageListing "${PACKAGE_FILE_ARM}" "${package_list}"
|
| + ExtractPackageBz2 "$package_list" "$tmp_package_list"
|
|
|
| - GeneratePackageList "$output_file" "${DEBIAN_PACKAGES}"
|
| + GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}"
|
| }
|
|
|
| StripChecksumsFromPackageList() {
|
| @@ -431,6 +458,25 @@ HacksAndPatchesI386() {
|
| }
|
|
|
|
|
| +HacksAndPatchesARM() {
|
| + Banner "Misc Hacks & Patches"
|
| + # these are linker scripts with absolute pathnames in them
|
| + # which we rewrite here
|
| + lscripts="${INSTALL_ROOT}/usr/lib/arm-linux-gnueabihf/libpthread.so \
|
| + ${INSTALL_ROOT}/usr/lib/arm-linux-gnueabihf/libc.so"
|
| +
|
| + #SubBanner "Rewriting Linker Scripts"
|
| + sed -i -e 's|/usr/lib/arm-linux-gnueabihf/||g' ${lscripts}
|
| + sed -i -e 's|/lib/arm-linux-gnueabihf/||g' ${lscripts}
|
| +
|
| + # This is for chrome's ./build/linux/pkg-config-wrapper
|
| + # which overwrites PKG_CONFIG_PATH internally
|
| + SubBanner "Package Configs Symlink"
|
| + mkdir -p ${INSTALL_ROOT}/usr/share
|
| + ln -s ../lib/arm-linux-gnueabihf/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig
|
| +}
|
| +
|
| +
|
| InstallIntoSysroot() {
|
| Banner "Install Libs And Headers Into Jail"
|
|
|
| @@ -473,11 +519,13 @@ CleanupJailSymlinks() {
|
| echo "${target}" | grep -qs ^/ || continue
|
| echo "${link}: ${target}"
|
| case "${link}" in
|
| - usr/lib/gcc/x86_64-linux-gnu/4.*/* | usr/lib/gcc/i486-linux-gnu/4.*/*)
|
| + usr/lib/gcc/x86_64-linux-gnu/4.*/* | usr/lib/gcc/i486-linux-gnu/4.*/* | \
|
| + usr/lib/gcc/arm-linux-gnueabihf/4.*/*)
|
| # Relativize the symlink.
|
| ln -snfv "../../../../..${target}" "${link}"
|
| ;;
|
| - usr/lib/x86_64-linux-gnu/* | usr/lib/i386-linux-gnu/*)
|
| + usr/lib/x86_64-linux-gnu/* | usr/lib/i386-linux-gnu/* | \
|
| + usr/lib/arm-linux-gnueabihf/*)
|
| # Relativize the symlink.
|
| ln -snfv "../../..${target}" "${link}"
|
| ;;
|
| @@ -515,7 +563,7 @@ BuildSysrootAmd64() {
|
| local files_and_sha256sums="$(cat ${package_file})"
|
| StripChecksumsFromPackageList "$package_file"
|
| VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_AMD64"
|
| - InstallIntoSysroot ${files_and_sha256sums}
|
| + InstallIntoSysroot "${files_and_sha256sums}"
|
| CleanupJailSymlinks
|
| HacksAndPatchesAmd64
|
| CreateTarBall "$1"
|
| @@ -528,25 +576,42 @@ BuildSysrootAmd64() {
|
| BuildSysrootI386() {
|
| CheckBuildSysrootArgs $@
|
| ClearInstallDir
|
| - local package_file="$TMP/package_with_sha256sum_amd64"
|
| + local package_file="$TMP/package_with_sha256sum_i386"
|
| GeneratePackageListI386 "$package_file"
|
| local files_and_sha256sums="$(cat ${package_file})"
|
| StripChecksumsFromPackageList "$package_file"
|
| VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_I386"
|
| - InstallIntoSysroot ${files_and_sha256sums}
|
| + InstallIntoSysroot "${files_and_sha256sums}"
|
| CleanupJailSymlinks
|
| HacksAndPatchesI386
|
| CreateTarBall "$1"
|
| }
|
|
|
| +#@
|
| +#@ BuildSysrootARM <tarball-name>
|
| +#@
|
| +#@ Build everything and package it
|
| +BuildSysrootARM() {
|
| + CheckBuildSysrootArgs $@
|
| + ClearInstallDir
|
| + local package_file="$TMP/package_with_sha256sum_arm"
|
| + GeneratePackageListARM "$package_file"
|
| + local files_and_sha256sums="$(cat ${package_file})"
|
| + StripChecksumsFromPackageList "$package_file"
|
| + VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_ARM"
|
| + InstallIntoSysroot "${files_and_sha256sums}"
|
| + CleanupJailSymlinks
|
| + HacksAndPatchesARM
|
| + CreateTarBall "$1"
|
| +}
|
| +
|
| #
|
| -# CheckForDebianGPGKeys
|
| +# CheckForDebianGPGKeyring
|
| #
|
| # Make sure the Debian GPG keys exist. Otherwise print a helpful message.
|
| #
|
| -CheckForDebianGPGKeys() {
|
| - if [ ! -e "/etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg" ] ||
|
| - [ ! -e "/etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg" ]; then
|
| +CheckForDebianGPGKeyring() {
|
| + if [ ! -e "/usr/share/keyrings/debian-archive-keyring.gpg" ]; then
|
| echo "Debian GPG keys missing. Install the debian-archive-keyring package."
|
| exit 1
|
| fi
|
| @@ -563,13 +628,12 @@ VerifyPackageListing() {
|
| local release_file="${TMP}/${RELEASE_FILE}"
|
| local release_file_gpg="${TMP}/${RELEASE_FILE_GPG}"
|
|
|
| - CheckForDebianGPGKeys
|
| + CheckForDebianGPGKeyring
|
|
|
| DownloadOrCopy ${RELEASE_LIST} ${release_file}
|
| DownloadOrCopy ${RELEASE_LIST_GPG} ${release_file_gpg}
|
| echo "Verifying: ${release_file} with ${release_file_gpg}"
|
| - gpgv --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg \
|
| - --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg \
|
| + gpgv --keyring /usr/share/keyrings/debian-archive-keyring.gpg \
|
| ${release_file_gpg} ${release_file}
|
|
|
| echo "Verifying: ${output_file}"
|
| @@ -591,19 +655,21 @@ VerifyPackageListing() {
|
| # to output file.
|
| #
|
| GeneratePackageList() {
|
| - local output_file="$1"
|
| - echo "Updating: ${output_file}"
|
| + local input_file="$1"
|
| + local output_file="$2"
|
| + echo "Updating: ${output_file} from ${input_file}"
|
| /bin/rm -f "${output_file}"
|
| shift
|
| + shift
|
| for pkg in $@ ; do
|
| - local pkg_full=$(grep -A 1 " ${pkg}\$" "${TMP}/Packages" | \
|
| + local pkg_full=$(grep -A 1 " ${pkg}\$" "$input_file" | \
|
| egrep -o "pool/.*")
|
| if [ -z "${pkg_full}" ]; then
|
| echo "ERROR: missing package: $pkg"
|
| exit 1
|
| fi
|
| local pkg_nopool=$(echo "$pkg_full" | sed "s/^pool\///")
|
| - local sha256sum=$(grep -A 4 " ${pkg}\$" "${TMP}/Packages" | \
|
| + local sha256sum=$(grep -A 4 " ${pkg}\$" "$input_file" | \
|
| grep ^SHA256: | sed 's/^SHA256: //')
|
| if [ "${#sha256sum}" -ne "64" ]; then
|
| echo "Bad sha256sum from Packages"
|
| @@ -635,6 +701,16 @@ UpdatePackageListsI386() {
|
| StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_I386"
|
| }
|
|
|
| +#@
|
| +#@ UpdatePackageListsARM
|
| +#@
|
| +#@ Regenerate the package lists such that they contain an up-to-date
|
| +#@ list of URLs within the Debian archive. (For arm)
|
| +UpdatePackageListsARM() {
|
| + GeneratePackageListARM "$DEBIAN_DEP_LIST_ARM"
|
| + StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_ARM"
|
| +}
|
| +
|
| if [ $# -eq 0 ] ; then
|
| echo "ERROR: you must specify a mode on the commandline"
|
| echo
|
|
|