Packages
nerves_system_br
0.14.1
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
Current section
Files
scripts/scrub-target.sh
#!/bin/sh
set -e
#
# Scrub the target directory for a Nerves image
#
# NOTE: Since this is being called from Buildroot, it
# is assumed that the working directory is the
# Buildroot root directory
#
# Check that the release directory exists
if [ ! -d "$TARGET_DIR" ]; then
echo "ERROR: Missing target directory: ($TARGET_DIR)"
exit 1
fi
# All of the Erlang libraries get included from the release (/srv/erlang), so
# we don't need anything in here.
rm -fr $TARGET_DIR/usr/lib/erlang/lib/*
# Remove all shell scripts. We're trying hard not to ever have to run
# one, so this keeps us honest in the base image.
# COMMENT OUT THE NEXT LINE TO SUPPORT config-pin ON THE BBB. WE DIDN'T START
# NERVES TO CONTINUE PROGRAMMING WITH SHELL SCRIPTS, BUT SIGH...
#find $TARGET_DIR -type f | xargs file | grep "POSIX shell script" | cut -d : -f 1 | xargs rm -f
# Remove shell script configuration
rm -f $TARGET_DIR/root/.bash* $TARGET_DIR/etc/profile $TARGET_DIR/etc/issue
rm -fr $TARGET_DIR/usr/share/bash-completion
# Remove sys v init configs since we don't use them
# NOTE: Can't remove inittab without causing a buildroot error when
# it configures whether to mount to root file system read/write
rm -fr $TARGET_DIR/etc/init.d $TARGET_DIR/etc/random-seed $TARGET_DIR/etc/network \
$TARGET_DIR/etc/protocols $TARGET_DIR/etc/services
# Remove the Buildroot default wpa_supplicant.conf since it is
# wrong and confusing. The wpa_supplicant.conf file must be
# dynamically created based on the regulatory domain, so it
# shouldn't be in a root filesystem anyway.
rm -f $TARGET_DIR/etc/wpa_supplicant.conf
# Remove the Buildroot default fstab since it isn't used.
# erlinit mounts the pseudo filesystems automatically and it
# has parameters to do a best-effort mount attempt on real
# partitions. Erlang/Elixir applications need to handle
# anything complicated.
rm -f $TARGET_DIR/etc/fstab
# Nerves currently does not use /home at all
rm -fr $TARGET_DIR/home
# Remove Erlang binaries that don't make sense on the target
find $TARGET_DIR -name ct_run -exec rm "{}" ";"
find $TARGET_DIR -name dialyzer -exec rm "{}" ";"
find $TARGET_DIR -name erlc -exec rm "{}" ";"
find $TARGET_DIR -name escript -exec rm "{}" ";"
find $TARGET_DIR -name run_erl -exec rm "{}" ";"
find $TARGET_DIR -name to_erl -exec rm "{}" ";"
find $TARGET_DIR -name typer -exec rm "{}" ";"
# Remove soft links that aren't used
rm -f $TARGET_DIR/usr/bin/erl $TARGET_DIR/usr/bin/epmd
# Remove libatomic_ops readme files
rm -fr $TARGET_DIR/usr/share/libatomic_ops
# Prune empty directories
find $TARGET_DIR/etc -type d -empty -delete
find $TARGET_DIR/usr -type d -empty -delete
echo "If the next line fails, add the following to nerves_defconfig and build clean (sorry):"
echo ' BR2_ROOTFS_SKELETON_CUSTOM=y'
echo ' BR2_ROOTFS_SKELETON_CUSTOM_PATH="${BR2_EXTERNAL_NERVES_PATH}/board/nerves-common/skeleton"'
find $TARGET_DIR/var -type d -empty -delete