Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Unified Diff: src/scripts/build_image.sh

Issue 627003: removes most of the old build tools (Closed)
Patch Set: Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/scripts/build_chrome.sh ('k') | src/scripts/build_kernel.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/scripts/build_image.sh
diff --git a/src/scripts/build_image.sh b/src/scripts/build_image.sh
deleted file mode 100755
index cfa29d17703a719a9cdcb4ca66016f30307cc37c..0000000000000000000000000000000000000000
--- a/src/scripts/build_image.sh
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2009 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.
-
-# Script to build a bootable keyfob-based chromeos system image.
-# It uses debootstrap (see https://wiki.ubuntu.com/DebootstrapChroot) to
-# create a base file system. It then cusotmizes the file system and adds
-# Ubuntu and chromeos specific packages. Finally, it creates a bootable USB
-# image from the root fs.
-#
-# NOTE: This script must be run from the chromeos build chroot environment.
-#
-
-# Load common constants. This should be the first executable line.
-# The path to common.sh should be relative to your script's location.
-. "$(dirname "$0")/common.sh"
-
-assert_inside_chroot
-assert_not_root_user
-
-DEFAULT_PKGLIST="${SRC_ROOT}/package_repo/package-list-prod.txt"
-
-# Flags
-DEFINE_integer build_attempt 1 \
- "The build attempt for this image build."
-DEFINE_string output_root "${DEFAULT_BUILD_ROOT}/images" \
- "Directory in which to place image result directories (named by version)"
-DEFINE_string build_root "$DEFAULT_BUILD_ROOT" \
- "Root of build output"
-DEFINE_boolean replace $FLAGS_FALSE "Overwrite existing output, if any."
-DEFINE_boolean increment $FLAGS_FALSE \
- "Picks the latest build and increments the minor version by one."
-
-DEFINE_string arch "x86" \
- "The target architecture to build for. One of { x86, armel }."
-DEFINE_string mirror "$DEFAULT_IMG_MIRROR" "Repository mirror to use."
-DEFINE_string suite "$DEFAULT_IMG_SUITE" "Repository suite to base image on."
-DEFINE_string mirror2 "" "Additional repository mirror to use (URL only)."
-DEFINE_string suite2 "" "Repository suite for additional mirror."
-DEFINE_string pkglist "$DEFAULT_PKGLIST" \
- "Name of file listing packages to install from repository."
-DEFINE_boolean with_dev_pkgs $FLAGS_TRUE \
- "Include additional developer-friendly packages in the image."
-
-# Parse command line
-FLAGS "$@" || exit 1
-eval set -- "${FLAGS_ARGV}"
-
-# Die on any errors.
-set -e
-
-# Determine build version
-. "${SCRIPTS_DIR}/chromeos_version.sh"
-
-# Use canonical path since some tools (e.g. mount) do not like symlinks
-# Append build attempt to output directory
-IMAGE_SUBDIR="${CHROMEOS_VERSION_STRING}-a${FLAGS_build_attempt}"
-OUTPUT_DIR="${FLAGS_output_root}/${IMAGE_SUBDIR}"
-ROOT_FS_DIR="${OUTPUT_DIR}/rootfs"
-ROOT_FS_IMG="${OUTPUT_DIR}/rootfs.image"
-MBR_IMG="${OUTPUT_DIR}/mbr.image"
-OUTPUT_IMG="${OUTPUT_DIR}/usb.img"
-
-LOOP_DEV=
-
-# Handle existing directory
-if [ -e "$OUTPUT_DIR" ]
-then
- if [ $FLAGS_replace -eq $FLAGS_TRUE ]
- then
- sudo rm -rf "$OUTPUT_DIR"
- else
- echo "Directory $OUTPUT_DIR already exists."
- echo "Use --build_attempt option to specify an unused attempt."
- echo "Or use --replace if you want to overwrite this directory."
- exit 1
- fi
-fi
-
-# create the output directory
-mkdir -p "$OUTPUT_DIR"
-
-cleanup_rootfs_loop() {
- sudo umount "$LOOP_DEV"
- sleep 1 # in case $LOOP_DEV is in use
- sudo losetup -d "$LOOP_DEV"
- LOOP_DEV=""
-}
-
-cleanup() {
- # Disable die on error.
- set +e
- if [ -n "$LOOP_DEV" ]
- then
- cleanup_rootfs_loop
- fi
-
- # Turn die on error back on.
- set -e
-}
-trap cleanup EXIT
-
-mkdir -p "$ROOT_FS_DIR"
-
-# Create root file system disk image to fit on a 1GB memory stick.
-# 1 GB in hard-drive-manufacturer-speak is 10^9, not 2^30. 700MB < 10^9 bytes.
-ROOT_SIZE_BYTES=$((1024 * 1024 * 700))
-dd if=/dev/zero of="$ROOT_FS_IMG" bs=1 count=1 seek=$((ROOT_SIZE_BYTES - 1))
-
-# Format, tune, and mount the rootfs.
-# Make sure we have a mtab to keep mkfs happy.
-if [ ! -e /etc/mtab ]; then
- sudo touch /etc/mtab
-fi
-UUID=`uuidgen`
-DISK_LABEL=C-ROOT
-LOOP_DEV=`sudo losetup -f`
-sudo losetup "$LOOP_DEV" "$ROOT_FS_IMG"
-sudo mkfs.ext3 "$LOOP_DEV"
-sudo tune2fs -L "$DISK_LABEL" -U "$UUID" -c 0 -i 0 "$LOOP_DEV"
-sudo mount "$LOOP_DEV" "$ROOT_FS_DIR"
-
-# -- Install packages and customize root file system. --
-PKGLIST="$FLAGS_pkglist"
-if [ $FLAGS_with_dev_pkgs -eq $FLAGS_TRUE ]; then
- PKGLIST="$PKGLIST,${SRC_ROOT}/package_repo/package-list-debug.txt"
-fi
-# Add official packages for ChromeOS if the file exists
-if [ -f ${SRC_ROOT}/package_repo/package-list-official.txt ]; then
- PKGLIST="$PKGLIST,${SRC_ROOT}/package_repo/package-list-official.txt"
-fi
-"${SCRIPTS_DIR}/install_packages.sh" \
- --build_root="${FLAGS_build_root}" \
- --root="$ROOT_FS_DIR" \
- --output_dir="${OUTPUT_DIR}" \
- --package_list="$PKGLIST" \
- --arch="$FLAGS_arch" \
- --mirror="$FLAGS_mirror" \
- --suite="$FLAGS_suite" \
- --mirror2="$FLAGS_mirror2" \
- --suite2="$FLAGS_suite2"
-
-"${SCRIPTS_DIR}/customize_rootfs.sh" --root="${ROOT_FS_DIR}"
-
-# -- Turn root file system into bootable image --
-
-if [ "$FLAGS_arch" = "x86" ]; then
- # Setup extlinux configuration.
- # TODO: For some reason the /dev/disk/by-uuid is not being generated by udev
- # in the initramfs. When we figure that out, switch to root=UUID=$UUID.
- cat <<EOF | sudo dd of="$ROOT_FS_DIR"/boot/extlinux.conf
-DEFAULT chromeos-usb
-PROMPT 0
-TIMEOUT 0
-
- label chromeos-usb
- menu label chromeos-usb
- kernel vmlinuz
- append quiet console=tty2 initrd=initrd.img init=/sbin/init boot=local rootwait root=LABEL=$DISK_LABEL ro noresume noswap i915.modeset=1 loglevel=1
-
-label chromeos-hd
- menu label chromeos-hd
- kernel vmlinuz
- append quiet console=tty2 init=/sbin/init boot=local rootwait root=HDROOT ro noresume noswap i915.modeset=1 loglevel=1
-EOF
-
-# Make partition bootable and label it.
-sudo "$SCRIPTS_DIR/extlinux.sh" -z --install "${ROOT_FS_DIR}/boot"
-
-fi # --arch=x86
-
-cleanup_rootfs_loop
-
-if [ "$FLAGS_arch" = "x86" ]; then
-
-# Create a master boot record.
-# Start with the syslinux master boot record. We need to zero-pad to
-# fill out a 512-byte sector size.
- SYSLINUX_MBR="/usr/lib/syslinux/mbr.bin"
- dd if="$SYSLINUX_MBR" of="$MBR_IMG" bs=512 count=1 conv=sync
- # Create a partition table in the MBR.
- NUM_SECTORS=$((`stat --format="%s" "$ROOT_FS_IMG"` / 512))
- sudo sfdisk -H64 -S32 -uS -f "$MBR_IMG" <<EOF
-,$NUM_SECTORS,L,-,
-,$NUM_SECTORS,S,-,
-,$NUM_SECTORS,L,*,
-;
-EOF
-
-fi # --arch=x86
-
-OUTSIDE_OUTPUT_DIR="${EXTERNAL_TRUNK_PATH}/src/build/images/${IMAGE_SUBDIR}"
-echo "Done. Image created in ${OUTPUT_DIR}"
-echo "To copy to USB keyfob, outside the chroot, do something like:"
-echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdb"
-echo "To convert to VMWare image, outside the chroot, do something like:"
-echo " ./image_to_vmware.sh --from=${OUTSIDE_OUTPUT_DIR}"
-
-trap - EXIT
« no previous file with comments | « src/scripts/build_chrome.sh ('k') | src/scripts/build_kernel.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698