mirror of
https://github.com/flatcar/scripts.git
synced 2026-03-01 11:31:35 +01:00
This leverages the branding eclass that was recently added to Gentoo. Since originally preparing this commit, these fields were added to our make.conf, but setting them in the profile is more versatile, allowing for downstreams. Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
78 lines
2.7 KiB
Bash
Executable File
78 lines
2.7 KiB
Bash
Executable File
#!/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.
|
|
|
|
SCRIPT_ROOT=$(readlink -f $(dirname "$0")/..)
|
|
. "${SCRIPT_ROOT}/common.sh" || exit 1
|
|
|
|
# Flags
|
|
DEFINE_string board "${DEFAULT_BOARD}" "The board to build an image for."
|
|
DEFINE_string root "" "The root file system to write /etc/lsb-release to."
|
|
DEFINE_string group "" "The default update group for update_engine."
|
|
|
|
# Parse command line
|
|
FLAGS "$@" || exit 1
|
|
eval set -- "${FLAGS_ARGV}"
|
|
|
|
switch_to_strict_mode
|
|
|
|
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)"
|
|
|
|
# These variables are set in the base profile.
|
|
eval $("portageq-${FLAGS_board}" envvar -v BRANDING_OS_\*)
|
|
BRANDING_OS_PRETTY_NAME="${BRANDING_OS_NAME} ${FLATCAR_VERSION}"
|
|
|
|
FLATCAR_APPID="{e96281a6-d1af-4bde-9a0a-97b76e56dc57}"
|
|
|
|
# DISTRIB_* are the standard lsb-release names
|
|
sudo mkdir -p "${ROOT_FS_DIR}/usr/share/flatcar" "${ROOT_FS_DIR}/etc/flatcar"
|
|
sudo_clobber "${ROOT_FS_DIR}/usr/share/flatcar/lsb-release" <<EOF
|
|
DISTRIB_ID="$BRANDING_OS_NAME"
|
|
DISTRIB_RELEASE=$FLATCAR_VERSION
|
|
DISTRIB_DESCRIPTION="$BRANDING_OS_PRETTY_NAME"
|
|
EOF
|
|
sudo ln -sf "../usr/share/flatcar/lsb-release" "${ROOT_FS_DIR}/etc/lsb-release"
|
|
|
|
# And the new standard, os-release
|
|
# https://www.freedesktop.org/software/systemd/man/os-release.html
|
|
sudo_clobber "${ROOT_FS_DIR}/usr/lib/os-release" <<EOF
|
|
NAME="$BRANDING_OS_NAME"
|
|
ID="$BRANDING_OS_ID"
|
|
ID_LIKE="$BRANDING_OS_ID_LIKE"
|
|
VERSION="$FLATCAR_VERSION"
|
|
VERSION_ID="$FLATCAR_VERSION_ID"
|
|
BUILD_ID="$FLATCAR_BUILD_ID"
|
|
SYSEXT_LEVEL="1.0"
|
|
PRETTY_NAME="$BRANDING_OS_PRETTY_NAME"
|
|
ANSI_COLOR="38;5;75"
|
|
HOME_URL="$BRANDING_OS_HOME_URL"
|
|
BUG_REPORT_URL="$BRANDING_OS_BUG_REPORT_URL"
|
|
FLATCAR_BOARD="$FLAGS_board"
|
|
CPE_NAME="cpe:2.3:o:${BRANDING_OS_ID}-linux:${BRANDING_OS_ID}_linux:${FLATCAR_VERSION}:*:*:*:*:*:*:*"
|
|
EOF
|
|
sudo ln -sf "../usr/lib/os-release" "${ROOT_FS_DIR}/etc/os-release"
|
|
sudo ln -sf "../../lib/os-release" "${ROOT_FS_DIR}/usr/share/flatcar/os-release"
|
|
# Compat for split of lib64 into lib and lib64
|
|
if [ ! -e "${ROOT_FS_DIR}/usr/lib64/os-release" ]; then
|
|
sudo ln -sf "../lib/os-release" "${ROOT_FS_DIR}/usr/lib64/os-release"
|
|
fi
|
|
|
|
# Create the defaults for the coreos configuration files in the usr directory
|
|
sudo_clobber "${ROOT_FS_DIR}/usr/share/flatcar/release" <<EOF
|
|
FLATCAR_RELEASE_VERSION=$FLATCAR_VERSION
|
|
FLATCAR_RELEASE_BOARD=$FLAGS_board
|
|
FLATCAR_RELEASE_APPID=$FLATCAR_APPID
|
|
EOF
|
|
|
|
sudo_clobber "${ROOT_FS_DIR}/usr/share/flatcar/update.conf" <<EOF
|
|
SERVER=https://public.update.flatcar-linux.net/v1/update/
|
|
GROUP=$FLAGS_group
|
|
EOF
|