#!/bin/sh -e for patch in patch/*.patch; do patch -p1 < "$patch" done # Remove forced gcc/g++ usage so builds work on gcc-less systems. sed -e "s#= g[c+][c+]#= $CC#g" \ -e "s#\(\$(CROSS_COMPILE)\)gcc#\1$CC#g" Makefile > _ mv -f _ Makefile # Build and install regular busybox. # This excludes utilities which require 'suid' to function. make HOSTCC="$CC" make CONFIG_PREFIX="$1/usr" install # Rename the binary temporarily. mv "$1/usr/bin/busybox" "$1/usr/bin/busybox-nosuid" # Build and install suid busybox. # This _only_ includes utlities which require 'suid' to function. cp -f .config-suid .config make HOSTCC="$CC" make CONFIG_PREFIX="$1/usr" install # Aptly name the busybox binaries. mv -f "$1/usr/bin/busybox" "$1/usr/bin/busybox-suid" mv -f "$1/usr/bin/busybox-nosuid" "$1/usr/bin/busybox" # Install the non-suid symlinks. "$1/usr/bin/busybox" --list | while read -r bin; do ln -s busybox "$1/usr/bin/$bin" done # Install the suid symlinks. "$1/usr/bin/busybox-suid" --list | while read -r bin; do ln -s busybox-suid "$1/usr/bin/$bin" done # Set suid on busybox suid. chmod u+s "$1/usr/bin/busybox-suid" # The acpid command requires that this directory exist # and does not automatically create it.. mkdir -p "$1/etc/acpi" # Install runit services. for s in acpid crond syslogd mdev ntpd; do mkdir -p "$1/etc/sv/$s" cp -f "$s.run" "$1/etc/sv/$s/run" ln -sf "/run/runit/supervise.$s" "$1/etc/sv/$s/supervise" done cp -f mdev.conf "$1/etc/mdev.conf"