mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 00:13:50 +00:00
![William Hesse](/assets/img/avatar_default.png)
This is needed to compile C++11 code, completing the changes required by the BoringSSL roll. BUG= R=kustermann@google.com Review URL: https://codereview.chromium.org/2250383002 .
117 lines
2.8 KiB
Bash
Executable file
117 lines
2.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by a
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
#
|
|
# Script to create a Debian wheezy chroot environment for building Dart
|
|
# Debian packages.
|
|
#
|
|
|
|
function usage {
|
|
USAGE="Usage: $0 i386|amd64 [target dir] [be|dev|<stable version>]]\n
|
|
\n
|
|
The first mandatory argument speciifies the CPU architecture using\n
|
|
the Debian convention (e.g. i386 and amd64).\n
|
|
\n
|
|
The second optional argument specifies the destination\n
|
|
directory. This defaults to 'debian_<architecture>'.\n
|
|
\n
|
|
The third optional argument specifies whether the chroot is\n
|
|
populated with a Dart checkout. Use 'be' for bleeding edge, 'dev'\n
|
|
for trunk/developer or the specific version number for a stable\n
|
|
version (e.g. 1.2)."
|
|
|
|
echo -e $USAGE
|
|
exit 1
|
|
}
|
|
|
|
# Expect one to three arguments, architecture, optional directory and
|
|
# optional channel.
|
|
if [ $# -lt 1 ] || [ $# -gt 3 ]
|
|
then
|
|
usage
|
|
fi
|
|
|
|
ARCH=$1
|
|
|
|
if [ -n "$2" ]
|
|
then
|
|
CHROOT=$2
|
|
else
|
|
CHROOT=debian_$ARCH
|
|
fi
|
|
|
|
if [ -n "$3" ]
|
|
then
|
|
CHANNEL=$3
|
|
fi
|
|
|
|
if [ "$ARCH" != "i386" ] && [ "$ARCH" != "amd64" ]
|
|
then
|
|
usage
|
|
fi
|
|
|
|
SVN_REPRO="http://dart.googlecode.com/svn/"
|
|
if [ -n "$CHANNEL" ]
|
|
then
|
|
if [ "$CHANNEL" == "be" ]
|
|
then
|
|
SVN_PATH="branches/bleeding_edge/deps/all.deps"
|
|
elif [ "$CHANNEL" == "dev" ]
|
|
then
|
|
SVN_PATH="trunk/deps/all.deps"
|
|
else
|
|
SVN_PATH="branches/$CHANNEL/deps/all.deps"
|
|
fi
|
|
SRC_URI=$SVN_REPRO$SVN_PATH
|
|
fi
|
|
|
|
# Create Debian wheezy chroot.
|
|
debootstrap --arch=$ARCH --components=main,restricted,universe,multiverse \
|
|
wheezy $CHROOT http://http.us.debian.org/debian/
|
|
chroot $CHROOT apt-get update
|
|
chroot $CHROOT apt-get -y install \
|
|
debhelper python git gcc sudo make
|
|
|
|
# Add chrome-bot user.
|
|
chroot $CHROOT groupadd --gid 1001 chrome-bot
|
|
chroot $CHROOT useradd --gid 1001 --uid 1001 --create-home chrome-bot
|
|
mkdir $CHROOT/b
|
|
chown 1001:1001 $CHROOT/b
|
|
|
|
# Create trampoline script for running the initialization as chrome-bot.
|
|
cat << EOF > $CHROOT/b/init_chroot_trampoline.sh
|
|
#!/bin/sh
|
|
su -c /b/init_chroot.sh chrome-bot
|
|
EOF
|
|
|
|
# Create initialization script which does nothing.
|
|
cat << 'EOF' > $CHROOT/b/init_chroot.sh
|
|
#!/bin/sh
|
|
cd /b
|
|
EOF
|
|
|
|
# If the channel is set extend the initialization script to check out
|
|
# the Dart sources. This uses two cat commands as the first part needs
|
|
# to bypass variable interpretation.
|
|
if [ -n "$SRC_URI" ]
|
|
then
|
|
cat << 'EOF' >> $CHROOT/b/init_chroot.sh
|
|
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
|
export PATH=$PATH:/b/depot_tools
|
|
EOF
|
|
|
|
cat << EOF >> $CHROOT/b/init_chroot.sh
|
|
gclient config $SRC_URI
|
|
gclient sync
|
|
gclient runhooks
|
|
EOF
|
|
fi
|
|
|
|
chmod 755 $CHROOT/b/init_chroot_trampoline.sh
|
|
|
|
chown 1001:1001 $CHROOT/b/init_chroot.sh
|
|
chmod 755 $CHROOT/b/init_chroot.sh
|
|
chroot $CHROOT /bin/sh /b/init_chroot_trampoline.sh
|