| Index: chrome/installer/linux/debian/build.sh
|
| diff --git a/chrome/installer/linux/debian/build.sh b/chrome/installer/linux/debian/build.sh
|
| index e43c437774612661fe653301e51c29166487daa0..d8c50a67468d3bf3e891c0738d912c37ae5d7903 100755
|
| --- a/chrome/installer/linux/debian/build.sh
|
| +++ b/chrome/installer/linux/debian/build.sh
|
| @@ -128,6 +128,8 @@ usage() {
|
| echo "-o dir package output directory [${OUTPUTDIR}]"
|
| echo "-b dir build input directory [${BUILDDIR}]"
|
| echo "-d brand either chromium or google_chrome"
|
| + echo "-s dir /path/to/sysroot"
|
| + echo "-e dir /path/to/dpkg-dev"
|
| echo "-h this help message"
|
| }
|
|
|
| @@ -162,7 +164,7 @@ verify_channel() {
|
| }
|
|
|
| process_opts() {
|
| - while getopts ":o:b:c:a:d:h" OPTNAME
|
| + while getopts ":e:s:o:b:c:a:d:h" OPTNAME
|
| do
|
| case $OPTNAME in
|
| o )
|
| @@ -181,6 +183,12 @@ process_opts() {
|
| d )
|
| BRANDING="$OPTARG"
|
| ;;
|
| + s )
|
| + SYSROOT="$OPTARG"
|
| + ;;
|
| + e )
|
| + DPKG_DEV_DIR="$OPTARG"
|
| + ;;
|
| h )
|
| usage
|
| exit 0
|
| @@ -217,20 +225,21 @@ if [ "$(uname -m)" = "x86_64" ]; then
|
| else
|
| TARGETARCH="ia32"
|
| fi
|
| -if [[ "$(lsb_release -c)" = *"precise" ]]; then
|
| - HOST_DISTRO="precise"
|
| -elif [[ "$(lsb_release -c)" = *"trusty" ]]; then
|
| - HOST_DISTRO="trusty"
|
| -else
|
| - echo "Debian package can only be build on Ubuntu Precise or Trusty"
|
| - exit 1
|
| -fi
|
|
|
| # call cleanup() on exit
|
| trap cleanup 0
|
| process_opts "$@"
|
| BUILDDIR=${BUILDDIR:=$(readlink -f "${SCRIPTDIR}/../../../../out/Release")}
|
|
|
| +if [[ "$(basename ${SYSROOT})" = "debian_wheezy_"*"-sysroot" ]]; then
|
| + TARGET_DISTRO="wheezy"
|
| +elif [[ "$(basename ${SYSROOT})" = "debian_jessie_"*"-sysroot" ]]; then
|
| + TARGET_DISTRO="jessie"
|
| +else
|
| + echo "Debian package can only be built using the wheezy or jessie sysroot."
|
| + exit 1
|
| +fi
|
| +
|
| source ${BUILDDIR}/installer/common/installer.include
|
|
|
| get_version_info
|
| @@ -256,13 +265,6 @@ export DEBEMAIL="${MAINTMAIL}"
|
| # the LSB sub-packages, to avoid pulling in all that stuff that's not installed
|
| # by default.
|
|
|
| -# Need a dummy debian/control file for dpkg-shlibdeps.
|
| -DUMMY_STAGING_DIR="${TMPFILEDIR}/dummy_staging"
|
| -mkdir "$DUMMY_STAGING_DIR"
|
| -cd "$DUMMY_STAGING_DIR"
|
| -mkdir debian
|
| -touch debian/control
|
| -
|
| # Generate the dependencies,
|
| # TODO(mmoss): This is a workaround for a problem where dpkg-shlibdeps was
|
| # resolving deps using some of our build output shlibs (i.e.
|
| @@ -272,33 +274,41 @@ touch debian/control
|
| # but it seems that we don't currently, so this is the most expediant fix.
|
| SAVE_LDLP=${LD_LIBRARY_PATH:-}
|
| unset LD_LIBRARY_PATH
|
| -DPKG_SHLIB_DEPS=$(dpkg-shlibdeps -O "$BUILDDIR/chrome" | \
|
| - sed 's/^shlibs:Depends=//')
|
| +if [ ${TARGETARCH} = "x64" ]; then
|
| + SHLIB_ARGS="-l${SYSROOT}/usr/lib/x86_64-linux-gnu"
|
| + SHLIB_ARGS="${SHLIB_ARGS} -l${SYSROOT}/lib/x86_64-linux-gnu"
|
| +else
|
| + SHLIB_ARGS="-l${SYSROOT}/usr/lib/i386-linux-gnu"
|
| + SHLIB_ARGS="${SHLIB_ARGS} -l${SYSROOT}/lib/i386-linux-gnu"
|
| +fi
|
| +SHLIB_ARGS="${SHLIB_ARGS} -l${SYSROOT}/usr/lib"
|
| +# TODO(thomasanderson): Unbundle dpkg-shlibdeps once the Precise->Trusty
|
| +# transition is complete by reverting CL 2411423002 and applying ps40001.
|
| +DPKG_SHLIB_DEPS=$(cd ${SYSROOT} && DPKG_DATADIR=${DPKG_DEV_DIR} \
|
| + perl -I ${DPKG_DEV_DIR}/scripts ${DPKG_DEV_DIR}/scripts/dpkg-shlibdeps.pl \
|
| + ${SHLIB_ARGS:-} -O -e"$BUILDDIR/chrome" | sed 's/^shlibs:Depends=//')
|
| if [ -n "$SAVE_LDLP" ]; then
|
| LD_LIBRARY_PATH=$SAVE_LDLP
|
| fi
|
|
|
| # Format it nicely and save it for comparison.
|
| -# The grep -v is for a duplicate libc6 dep caused by Lucid glibc silliness.
|
| -echo "$DPKG_SHLIB_DEPS" | sed 's/, /\n/g' | \
|
| - grep -v '^libc6 (>= 2.3.6-6~)$' | LANG=C sort > actual
|
| +echo "$DPKG_SHLIB_DEPS" | sed 's/, /\n/g' | LANG=C sort > actual
|
|
|
| -# Compare the expected dependency list to the generate list.
|
| +# Compare the expected dependency list to the generated list.
|
| BAD_DIFF=0
|
| -diff -u "$SCRIPTDIR/expected_deps_${TARGETARCH}_${HOST_DISTRO}" actual || \
|
| +diff -u "$SCRIPTDIR/expected_deps_${TARGETARCH}_${TARGET_DISTRO}" actual || \
|
| BAD_DIFF=1
|
| if [ $BAD_DIFF -ne 0 ] && [ -z "${IGNORE_DEPS_CHANGES:-}" ]; then
|
| echo
|
| echo "ERROR: Shared library dependencies changed!"
|
| echo "If this is intentional, please update:"
|
| - echo "chrome/installer/linux/debian/expected_deps_ia32_precise"
|
| - echo "chrome/installer/linux/debian/expected_deps_ia32_trusty"
|
| - echo "chrome/installer/linux/debian/expected_deps_x64_precise"
|
| - echo "chrome/installer/linux/debian/expected_deps_x64_trusty"
|
| + echo "chrome/installer/linux/debian/expected_deps_ia32_jessie"
|
| + echo "chrome/installer/linux/debian/expected_deps_ia32_wheezy"
|
| + echo "chrome/installer/linux/debian/expected_deps_x64_jessie"
|
| + echo "chrome/installer/linux/debian/expected_deps_x64_wheezy"
|
| echo
|
| exit $BAD_DIFF
|
| fi
|
| -rm -rf "$DUMMY_STAGING_DIR"
|
|
|
| # Additional dependencies not in the dpkg-shlibdeps output.
|
| # ca-certificates: Make sure users have SSL certificates.
|
|
|