blob: a27a2d173f1bbc7ca49f888fcd706a52751662a6 [file] [log] [blame]
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -08001#!/bin/bash
2
David Jamese3d542a2010-09-24 16:21:19 -07003# Copyright (c) 2009,2010 The Chromium OS Authors. All rights reserved.
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -08004# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
jglasgowcc71f3a2010-03-12 14:30:21 -05007set -e
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -08008
jglasgowcc71f3a2010-03-12 14:30:21 -05009build=1
David Jamese3d542a2010-09-24 16:21:19 -070010if [ x$1 == x-n ]
11then
12 # eat the gmerge -n option to avoid passing it to emerge
13 build=0
14 shift
15fi
jglasgowcc71f3a2010-03-12 14:30:21 -050016
Chris Sosa605fe882010-04-22 17:01:32 -070017# Package name is the last argument.
18package_name=${!#}
19
David Jamese3d542a2010-09-24 16:21:19 -070020# If no package name is provided skip to emerge options.
21if [[ $package_name == -* ]]
Chris Sosa605fe882010-04-22 17:01:32 -070022then
jglasgowcc71f3a2010-03-12 14:30:21 -050023 build=0
24fi
25
26DEVKIT_URL=$(grep ^CHROMEOS_DEVSERVER /etc/lsb-release | cut -d = -f 2-)
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080027BOARD_NAME=$(grep ^CHROMEOS_RELEASE_BOARD $dir/etc/lsb-release | cut -d = -f 2-)
28
29if [ -z $DEVKIT_URL ]
30then
31 echo "No devkit server specified in /etc/lsb-release"
32 exit 1
33fi
34
35if [ -z $BOARD_NAME ]
36then
37 echo "No board specified in /etc/lsb-release"
38 exit 1
39fi
40
41mount -o remount,rw /
jglasgowcc71f3a2010-03-12 14:30:21 -050042mkdir -p /etc/make.profile
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080043
Mandeep Singh Bainesea6b7a52010-08-17 14:03:57 -070044# Delete the local binary package cache.
45sudo rm -rf /usr/portage/packages
46
jglasgowcc71f3a2010-03-12 14:30:21 -050047if [ $build == 1 ] ; then
Chris Sosa605fe882010-04-22 17:01:32 -070048 echo "Building $package_name"
49 ESCAPED_PACKAGE=$(python -c \
50 "import urllib; print urllib.quote('''$package_name''')")
jglasgowcc71f3a2010-03-12 14:30:21 -050051 ESCAPED_BOARD=$(python -c \
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080052 "import urllib; print urllib.quote('''${BOARD_NAME}''')")
53
Chris Sosa605fe882010-04-22 17:01:32 -070054 wget $DEVKIT_URL/build \
55 --post-data="pkg=${ESCAPED_PACKAGE}&board=${ESCAPED_BOARD}"
jglasgowcc71f3a2010-03-12 14:30:21 -050056fi
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080057
Chris Sosa605fe882010-04-22 17:01:32 -070058# Installing emerge into /usr/local installs make.globals needed in
59# /usr/local/etc rather than /etc.
60if [ ! -f /etc/make.globals ]
61then
62 if [ -f /usr/local/etc/make.globals ]
63 then
64 echo "Missing /etc/make.globals, copying over from /usr/local/etc"
65 sudo cp /usr/local/etc/make.globals /etc
66 else
67 echo "Missing /etc/make.globals and none in /usr/local/etc. Aborting."
68 exit 1
69 fi
70fi
71
72echo "Emerging $package_name"
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080073
74export PORTAGE_BINHOST="${DEVKIT_URL}/static/pkgroot/${BOARD_NAME}/packages"
75export PORTAGE_TMPDIR=/tmp
Chris Sosa87510aa2010-06-28 16:10:00 -070076
77# Accept keywords only for stable ebuilds by default.
78if [ -z "$ACCEPT_KEYWORDS" ] ; then
Mandeep Singh Bainesea6b7a52010-08-17 14:03:57 -070079 ACCEPT_KEYWORDS='arm x86 ~arm ~x86'
Chris Sosa87510aa2010-06-28 16:10:00 -070080fi
81export ACCEPT_KEYWORDS
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080082
Mandeep Singh Baines44714d32010-08-26 16:08:54 -070083# Disable CONFIG_PROTECT.
84export CONFIG_PROTECT="-*"
85
David Jamese3d542a2010-09-24 16:21:19 -070086FEATURES="-sandbox" emerge --getbinpkgonly --usepkgonly "$@"