# Copyright (c) 2012 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. # Shell function library for functions specific to creating dev # images from base images. The main function for export in this # library is 'install_dev_packages'. configure_dev_portage() { # Need profiles at the bare minimum local repo for repo in portage-stable coreos-overlay; do sudo mkdir -p "$1/var/lib/portage/${repo}" sudo rsync -rtl --exclude=md5-cache \ "${SRC_ROOT}/third_party/${repo}/metadata" \ "${SRC_ROOT}/third_party/${repo}/profiles" \ "$1/var/lib/portage/${repo}" done sudo mkdir -p "$1/etc/portage" sudo_clobber "$1/etc/portage/make.conf" </dev/null) if [[ -z "${host}" ]]; then host=$(ip addr show scope global | \ awk '$1 == "inet" { sub(/[/].*/, "", $2); print $2; exit }') fi if [[ -n "${host}" ]]; then echo "http://${host}${port}" fi } # Modifies an existing image to add development packages. # Takes as an arg the name of the image to be created. install_dev_packages() { local image_name=$1 local disk_layout=$2 local devserver=$(detect_dev_url) local auserver="" if [[ -n "${devserver}" ]]; then info "Using ${devserver} for local dev server URL." auserver="${devserver}/update" else info "Unable do detect local dev server address." fi info "Adding developer packages to ${image_name}" local root_fs_dir="${BUILD_DIR}/rootfs" "${BUILD_LIBRARY_DIR}/disk_util" --disk_layout="${disk_layout}" \ mount "${BUILD_DIR}/${image_name}" "${root_fs_dir}" trap "cleanup_mounts '${root_fs_dir}' && delete_prompt" EXIT # Install developer packages described in coreos-dev. emerge_to_image --root="${root_fs_dir}" coreos-base/coreos-dev # Make sure profile.env and ld.so.cache has been generated sudo ROOT="${root_fs_dir}" env-update # Setup portage for emerge and gmerge configure_dev_portage "${root_fs_dir}" "${devserver}" sudo_append "${root_fs_dir}/etc/coreos/update.conf" <