Packages

nerves_system_br

1.32.4
1.34.0 1.33.9 1.33.8 1.33.7 1.33.6 1.33.5 1.33.4 1.33.3 1.33.2 1.33.1 1.33.0 1.32.5 1.32.4 1.32.3 1.32.2 1.32.1 1.32.0 1.31.7 1.31.6 1.31.5 1.31.4 1.31.3 1.31.2 1.31.1 1.31.0 1.30.1 1.30.0 1.29.3 1.29.2 1.29.1 1.29.0 1.28.3 1.28.2 1.28.1 1.28.0 1.27.3 1.27.2 1.27.1 1.27.0 1.26.1 1.26.0 1.25.3 1.25.2 1.25.1 1.25.0 1.24.1 1.24.0 1.23.3 1.23.2 1.23.1 1.23.0 1.22.8 1.22.7 1.22.6 1.22.5 1.22.4 1.22.3 1.22.2 1.22.1 1.22.0 1.21.6 1.21.5 1.21.4 1.21.3 1.21.2 1.21.1 1.21.0 1.20.6 1.20.5 1.20.4 1.20.3 1.20.2 1.20.1 1.20.0 1.19.1 1.19.0 1.18.6 1.18.5 1.18.4 1.18.3 1.18.2 1.18.1 1.18.0 1.17.4 1.17.3 1.17.2 1.17.1 1.17.0 1.16.5 1.16.4 1.16.3 1.16.2 1.16.1 1.16.0 1.15.2 1.15.1 1.15.0 1.14.5 1.14.4 1.14.3 1.14.2 1.14.1 1.14.0 1.13.8 1.13.7 1.13.6 1.13.5 1.13.4 1.13.3 1.13.2 1.13.1 1.13.0 1.12.4 1.12.3 1.12.2 1.12.1 1.12.0 1.12.0-rc.0 1.11.4 1.11.3 1.11.2 1.11.1 1.11.0 1.10.3 1.10.2 1.10.1 1.10.0 1.9.5 1.9.4 1.9.3 1.9.2 1.9.1 1.9.0 1.8.6 1.8.5 1.8.4 1.8.3 1.8.2 1.8.1 1.8.0 1.7.3 1.7.2 1.7.1 1.7.0 1.6.8 1.6.7 1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.6 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.2 1.3.1 1.3.0 1.2.2 1.2.1 1.2.0 1.1.0 1.0.1 1.0.0 1.0.0-rc.4 1.0.0-rc.3 1.0.0-rc.2 1.0.0-rc.1 1.0.0-rc.0 0.17.0 0.16.4 0.16.3 0.16.2 0.16.1-2017-11 0.16.0-2017-11 0.15.1 0.15.0 0.14.1 0.14.0 0.13.9 0.13.8 0.13.7 0.13.6 0.13.5 0.13.4 retired 0.13.3 0.13.2 0.13.0 0.12.1 0.12.0 0.11.1 0.11.0 0.10.1 0.10.0 0.9.4 0.9.3 0.9.2 0.9.1 0.9.0 0.8.2 0.8.1 0.8.0 0.7.0 0.6.1 0.6.0 0.5.2 0.5.1 0.5.0 0.4.2 0.4.1

Nerves System BR - Buildroot based build platform for Nerves Systems

Current section

Files

Jump to
nerves_system_br scripts mksystem.sh
Raw

scripts/mksystem.sh

#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2015 Frank Hunleth
# SPDX-FileCopyrightText: 2016 Greg Mefford
# SPDX-FileCopyrightText: 2016 JP Hastings-Spital
# SPDX-FileCopyrightText: 2019 Matt Ludwigs
#
# SPDX-License-Identifier: Apache-2.0
#
#
# This script creates a tarball with everything needed to build
# an application image on another system. It is useful to allow
# the parts that require Linux to be built separately from the
# parts that can be built on any system.
# It is intended to be called from Buildroot's Makefiles so that
# the environment is set up properly.
#
# Inputs:
# $1 = the archive name (if not passed, we'll make up a name)
# BASE_DIR = the build directory (aka, the future $NERVES_SYSTEM directory)
# PWD = the buildroot directory
#
# Outputs:
# Archive tarball
#
set -e
# The first parameter is the name of the archive to create. If it's not set
# we'll set it below.
ARCHIVE_NAME=$1
BR2_EXTERNAL_NERVES_PATH=$PWD/..
if [ -z "$ARCHIVE_NAME" ]; then
echo "ERROR: Please specify an archive name"
exit 1
fi
# Check the working directory
if [ ! -f "$PWD/package/pkg-generic.mk" ]; then
echo "ERROR: mksystem.sh must be run from the buildroot directory"
exit 1
fi
# Check BASE_DIR
if [ -z "$BASE_DIR" ]; then
echo "ERROR: BASE_DIR undefined? Script should be called from Buildroot."
exit 1
fi
NERVES_DEFCONFIG=$(grep BR2_DEFCONFIG= "$BASE_DIR/.config" | sed -e 's/BR2_DEFCONFIG=".*\/\(.*\)"/\1/')
WORK_DIR=$BASE_DIR/tmp-system
rm -fr "$WORK_DIR"
mkdir -p "$WORK_DIR/$ARCHIVE_NAME"
# Save the version to the archive in case we need it for debug
VERSION=$(cat ../VERSION)
echo "$VERSION" >"$WORK_DIR/$ARCHIVE_NAME/nerves-system.tag"
# Add some help text for the curious
cat << EOT > "$WORK_DIR/$ARCHIVE_NAME/README.md"
# Nerves system image
This is an automatically generated archive created by \`nerves_system_br\`. It is
useful for building embedded Elixir projects without worrying too much
about the cross-compiler and Linux parts. See http://nerves-project.org
for more information.
## Build information
Configuration: $NERVES_DEFCONFIG
nerves_system_br: $VERSION
EOT
# Copy common nerves shell scripts over
cp "$BR2_EXTERNAL_NERVES_PATH/nerves-env.sh" "$WORK_DIR/$ARCHIVE_NAME"
cp "$BR2_EXTERNAL_NERVES_PATH/nerves.mk" "$WORK_DIR/$ARCHIVE_NAME"
cp -R "$BR2_EXTERNAL_NERVES_PATH/scripts" "$WORK_DIR/$ARCHIVE_NAME"
# Copy the built configuration over
cp "$BASE_DIR/.config" "$WORK_DIR/$ARCHIVE_NAME"
# Copy the staging and images directories over
cp -R "$BASE_DIR/images" "$WORK_DIR/$ARCHIVE_NAME"
cp -HR "$BASE_DIR/staging" "$WORK_DIR/$ARCHIVE_NAME"
# Copy SBOM information if generated
if [[ -e "$BASE_DIR/pkg-stats.json" ]]; then
cp "$BASE_DIR/pkg-stats.json" "$WORK_DIR/$ARCHIVE_NAME"
cp "$BASE_DIR/pkg-stats.html" "$WORK_DIR/$ARCHIVE_NAME"
fi
if [[ -d "$BASE_DIR/legal-info" ]]; then
# The legal-info is very large since it contains all source tarballs.
# Don't include the source tarballs for now.
cp -R "$BASE_DIR/legal-info" "$WORK_DIR/$ARCHIVE_NAME"
rm -rf "$WORK_DIR/$ARCHIVE_NAME/legal-info/sources" "$WORK_DIR/$ARCHIVE_NAME/legal-info/host-sources"
fi
# Clean up extra files that were copied over and aren't needed
rm -f "$WORK_DIR/$ARCHIVE_NAME/images"/*.fw
rm -f "$WORK_DIR/$ARCHIVE_NAME/images/$ARCHIVE_NAME.img"
tar c -z -f "$BASE_DIR/$ARCHIVE_NAME.tar.gz" -C "$WORK_DIR" "$ARCHIVE_NAME"
rm -fr "$WORK_DIR"