Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | # Copyright (c) 2009 The Chromium OS 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 | |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 7 | set -e |
Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 8 | |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 9 | build=1 |
| 10 | |
Chris Sosa | 605fe88 | 2010-04-22 17:01:32 -0700 | [diff] [blame] | 11 | # Package name is the last argument. |
| 12 | package_name=${!#} |
| 13 | |
| 14 | # If no package name is provided skip to emerge options or if -n is given. |
| 15 | if [[ $package_name == -* ]] || [ x$1 == x-n ] |
| 16 | then |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 17 | build=0 |
| 18 | fi |
| 19 | |
| 20 | DEVKIT_URL=$(grep ^CHROMEOS_DEVSERVER /etc/lsb-release | cut -d = -f 2-) |
Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 21 | BOARD_NAME=$(grep ^CHROMEOS_RELEASE_BOARD $dir/etc/lsb-release | cut -d = -f 2-) |
| 22 | |
| 23 | if [ -z $DEVKIT_URL ] |
| 24 | then |
| 25 | echo "No devkit server specified in /etc/lsb-release" |
| 26 | exit 1 |
| 27 | fi |
| 28 | |
| 29 | if [ -z $BOARD_NAME ] |
| 30 | then |
| 31 | echo "No board specified in /etc/lsb-release" |
| 32 | exit 1 |
| 33 | fi |
| 34 | |
| 35 | mount -o remount,rw / |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 36 | mkdir -p /etc/make.profile |
Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 37 | |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 38 | if [ $build == 1 ] ; then |
Chris Sosa | 605fe88 | 2010-04-22 17:01:32 -0700 | [diff] [blame] | 39 | echo "Building $package_name" |
| 40 | ESCAPED_PACKAGE=$(python -c \ |
| 41 | "import urllib; print urllib.quote('''$package_name''')") |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 42 | ESCAPED_BOARD=$(python -c \ |
Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 43 | "import urllib; print urllib.quote('''${BOARD_NAME}''')") |
| 44 | |
Chris Sosa | 605fe88 | 2010-04-22 17:01:32 -0700 | [diff] [blame] | 45 | wget $DEVKIT_URL/build \ |
| 46 | --post-data="pkg=${ESCAPED_PACKAGE}&board=${ESCAPED_BOARD}" |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 47 | fi |
Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 48 | |
Chris Sosa | 605fe88 | 2010-04-22 17:01:32 -0700 | [diff] [blame] | 49 | # Installing emerge into /usr/local installs make.globals needed in |
| 50 | # /usr/local/etc rather than /etc. |
| 51 | if [ ! -f /etc/make.globals ] |
| 52 | then |
| 53 | if [ -f /usr/local/etc/make.globals ] |
| 54 | then |
| 55 | echo "Missing /etc/make.globals, copying over from /usr/local/etc" |
| 56 | sudo cp /usr/local/etc/make.globals /etc |
| 57 | else |
| 58 | echo "Missing /etc/make.globals and none in /usr/local/etc. Aborting." |
| 59 | exit 1 |
| 60 | fi |
| 61 | fi |
| 62 | |
| 63 | echo "Emerging $package_name" |
Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 64 | |
| 65 | export PORTAGE_BINHOST="${DEVKIT_URL}/static/pkgroot/${BOARD_NAME}/packages" |
| 66 | export PORTAGE_TMPDIR=/tmp |
Jie Sun | 859a8da | 2010-04-29 15:38:45 -0700 | [diff] [blame] | 67 | # TODO(rtc): Revisit setting ~x86 and ~arm. |
jglasgow | cc71f3a | 2010-03-12 14:30:21 -0500 | [diff] [blame] | 68 | # If we add support to build recursive deps this might pull in |
| 69 | # unstable changes from upstream for packages that you do not want. |
Jie Sun | 859a8da | 2010-04-29 15:38:45 -0700 | [diff] [blame] | 70 | export ACCEPT_KEYWORDS='~arm arm ~x86 x86' |
Ryan Cairns | dd1ceb8 | 2010-03-02 21:35:01 -0800 | [diff] [blame] | 71 | |
Chris Sosa | 605fe88 | 2010-04-22 17:01:32 -0700 | [diff] [blame] | 72 | FEATURES="-sandbox" emerge --getbinpkg --usepkgonly "$@" |