# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This configuration file is intended to reside in the rootfs of pristine
# images. If the developer mode switch is enabled these settings will allow
# us to bootstrap emerge and allow to install packages in /usr/local. Rootfs
# will remain unmodified.

# Point everything to /usr/local.
ROOT=/usr/local

PORTDIR="${ROOT}/portage"

PKGDIR="${ROOT}/portage/packages"

DISTDIR="${ROOT}/portage/distfiles"

RPMDIR="${ROOT}/portage/rpm"

PORTAGE_TMPDIR="${ROOT}/var/tmp"

BUILD_PREFIX="${ROOT}/var/tmp/portage"

CONFIG_PROTECT="/usr/local/share/portage"

PORTAGE_WORKDIR_MODE="0700"

EMERGE_DEFAULT_OPTS="--getbinpkg --usepkgonly"

# use curl instead of wget since curl supports HTTPS with Subject Alternative
# Name (commondatastorage.googleapis.com for googleusercontent.com)
FETCHCOMMAND="/usr/bin/curl --connect-timeout 15 -# -o \${DISTDIR}/\${FILE} \${URI}" 
RESUMECOMMAND="/usr/bin/curl --connect-timeout 15 -# -C - -o \${DISTDIR}/\${FILE}\${URI}"

IUSE_IMPLICIT="@IUSE_IMPLICIT@"
ARCH="@ARCH@"
ELIBC="@ELIBC@"
USERLAND="@USERLAND@"
KERNEL="@KERNEL@"
USE_EXPAND_IMPLICIT="@USE_EXPAND_IMPLICIT@"
ACCEPT_KEYWORDS="~${ARCH} ${ARCH}"
