blob: 2103b8965b69ff6bf6fb118c93f98d991e1f4f88 [file] [log] [blame]
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -08001#!/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
jglasgowcc71f3a2010-03-12 14:30:21 -05007set -e
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -08008
jglasgowcc71f3a2010-03-12 14:30:21 -05009build=1
10
Chris Sosa605fe882010-04-22 17:01:32 -070011# Package name is the last argument.
12package_name=${!#}
13
14# If no package name is provided skip to emerge options or if -n is given.
15if [[ $package_name == -* ]] || [ x$1 == x-n ]
16then
jglasgowcc71f3a2010-03-12 14:30:21 -050017 build=0
18fi
19
20DEVKIT_URL=$(grep ^CHROMEOS_DEVSERVER /etc/lsb-release | cut -d = -f 2-)
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080021BOARD_NAME=$(grep ^CHROMEOS_RELEASE_BOARD $dir/etc/lsb-release | cut -d = -f 2-)
22
23if [ -z $DEVKIT_URL ]
24then
25 echo "No devkit server specified in /etc/lsb-release"
26 exit 1
27fi
28
29if [ -z $BOARD_NAME ]
30then
31 echo "No board specified in /etc/lsb-release"
32 exit 1
33fi
34
35mount -o remount,rw /
jglasgowcc71f3a2010-03-12 14:30:21 -050036mkdir -p /etc/make.profile
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080037
Mandeep Singh Bainesea6b7a52010-08-17 14:03:57 -070038# Delete the local binary package cache.
39sudo rm -rf /usr/portage/packages
40
jglasgowcc71f3a2010-03-12 14:30:21 -050041if [ $build == 1 ] ; then
Chris Sosa605fe882010-04-22 17:01:32 -070042 echo "Building $package_name"
43 ESCAPED_PACKAGE=$(python -c \
44 "import urllib; print urllib.quote('''$package_name''')")
jglasgowcc71f3a2010-03-12 14:30:21 -050045 ESCAPED_BOARD=$(python -c \
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080046 "import urllib; print urllib.quote('''${BOARD_NAME}''')")
47
Chris Sosa605fe882010-04-22 17:01:32 -070048 wget $DEVKIT_URL/build \
49 --post-data="pkg=${ESCAPED_PACKAGE}&board=${ESCAPED_BOARD}"
jglasgowcc71f3a2010-03-12 14:30:21 -050050fi
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080051
Chris Sosa605fe882010-04-22 17:01:32 -070052# Installing emerge into /usr/local installs make.globals needed in
53# /usr/local/etc rather than /etc.
54if [ ! -f /etc/make.globals ]
55then
56 if [ -f /usr/local/etc/make.globals ]
57 then
58 echo "Missing /etc/make.globals, copying over from /usr/local/etc"
59 sudo cp /usr/local/etc/make.globals /etc
60 else
61 echo "Missing /etc/make.globals and none in /usr/local/etc. Aborting."
62 exit 1
63 fi
64fi
65
66echo "Emerging $package_name"
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080067
68export PORTAGE_BINHOST="${DEVKIT_URL}/static/pkgroot/${BOARD_NAME}/packages"
69export PORTAGE_TMPDIR=/tmp
Chris Sosa87510aa2010-06-28 16:10:00 -070070
71# Accept keywords only for stable ebuilds by default.
72if [ -z "$ACCEPT_KEYWORDS" ] ; then
Mandeep Singh Bainesea6b7a52010-08-17 14:03:57 -070073 ACCEPT_KEYWORDS='arm x86 ~arm ~x86'
Chris Sosa87510aa2010-06-28 16:10:00 -070074fi
75export ACCEPT_KEYWORDS
Ryan Cairnsdd1ceb82010-03-02 21:35:01 -080076
Mandeep Singh Baines44714d32010-08-26 16:08:54 -070077# Disable CONFIG_PROTECT.
78export CONFIG_PROTECT="-*"
79
Chris Sosa605fe882010-04-22 17:01:32 -070080FEATURES="-sandbox" emerge --getbinpkg --usepkgonly "$@"