blob: 1b7b219dcd93de0f5dcf3e2957bb37857dad3812 [file] [log] [blame]
#!/bin/bash
# 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.
# Script to set /etc/lsb-release on the root file system. This script is run by
# build_image inside chroot.
readonly COMMON_SH=/usr/lib/crosutils/common.sh
if [ ! -r "${COMMON_SH}" ]; then
echo "ERROR: Run inside chroot."
exit 1
fi
. "${COMMON_SH}"
# Flags
DEFINE_string board "" "The board to build an image for."
DEFINE_string root "" "The root file system to write /etc/lsb-release to."
# Parse command line
FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"
set -e
ROOT_FS_DIR="$FLAGS_root"
[ -n "$ROOT_FS_DIR" ] || die "--root is required."
[ -d "$ROOT_FS_DIR" ] || die "Root FS does not exist? ($ROOT_FS_DIR)"
[ -n "${CHROMEOS_VERSION_STRING}" ] || die "chromeos_version.sh isn't sourced."
CHROMEOS_VERSION_NAME="Chromium OS"
CHROMEOS_VERSION_AUSERVER=\
${CHROMEOS_VERSION_AUSERVER:-"http://$(hostname --fqdn):8080/update"}
CHROMEOS_VERSION_DEVSERVER=\
${CHROMEOS_VERSION_DEVSERVER:-"http://$(hostname --fqdn):8080"}
# Official builds must set CHROMEOS_OFFICIAL=1.
if [ ${CHROMEOS_OFFICIAL:-0} = 1 ]; then
# Official builds (i.e., buildbot)
CHROMEOS_VERSION_TRACK="dev-channel"
CHROMEOS_VERSION_NAME="Chrome OS"
CHROMEOS_VERSION_DESCRIPTION="${CHROMEOS_VERSION_STRING} (Official Build) \
${CHROMEOS_VERSION_TRACK} $FLAGS_board test"
CHROMEOS_VERSION_AUSERVER="https://tools.google.com/service/update2"
CHROMEOS_VERSION_DEVSERVER=""
elif [ "$USER" = "chrome-bot" ]; then
# Continuous builder
CHROMEOS_VERSION_TRACK="buildbot-build"
CHROMEOS_VERSION_DESCRIPTION="${CHROMEOS_VERSION_STRING} (Continuous Build \
- Builder: ${BUILDBOT_BUILD:-"N/A"}) $FLAGS_board"
else
# Developer hand-builds
CHROMEOS_VERSION_TRACK=${CHROMEOS_VERSION_TRACK:-"developer-build"}
CHROMEOS_VERSION_DESCRIPTION="${CHROMEOS_VERSION_STRING} (Developer Build \
- $USER) ${CHROMEOS_VERSION_TRACK} $FLAGS_board"
fi
# Set google-specific version numbers:
# CHROMEOS_RELEASE_BOARD is the target board identifier.
# CHROMEOS_RELEASE_DESCRIPTION is the version displayed by Chrome; see
# chrome/browser/chromeos/chromeos_version_loader.cc.
# CHROMEOS_RELEASE_NAME is a human readable name for the build.
# CHROMEOS_RELEASE_TRACK and CHROMEOS_RELEASE_VERSION are used by the software
# update service.
# TODO(skrul): Remove GOOGLE_RELEASE once Chromium is updated to look at
# CHROMEOS_RELEASE_VERSION for UserAgent data.
sudo_append "${ROOT_FS_DIR}/etc/lsb-release" <<EOF
CHROMEOS_RELEASE_BOARD=$FLAGS_board
CHROMEOS_RELEASE_DESCRIPTION=$CHROMEOS_VERSION_DESCRIPTION
CHROMEOS_RELEASE_NAME=$CHROMEOS_VERSION_NAME
CHROMEOS_RELEASE_TRACK=$CHROMEOS_VERSION_TRACK
CHROMEOS_RELEASE_VERSION=$CHROMEOS_VERSION_STRING
GOOGLE_RELEASE=$CHROMEOS_VERSION_STRING
CHROMEOS_AUSERVER=$CHROMEOS_VERSION_AUSERVER
CHROMEOS_DEVSERVER=$CHROMEOS_VERSION_DEVSERVER
EOF