DEPENDS=$(cat "$SCRIPTDIR/board/$BOARD/ROOTFS") build() { local SOURCE="$1" local BUILD="$2" local DEPLOY="$3" # setup skeleton mkdir -pv ${BUILD}/{bin,lib,etc,dev,sys,proc,tmp,var,run} mkdir -pv ${BUILD}/{boot,usr,srv,mnt,opt} mkdir -pv ${BUILD}/cfg/{preserve,overlay} echo "/lib" > "$BUILD/etc/ld-musl-${MUSL_CPU}.path" if [ -e "$SCRIPTDIR/board/$BOARD/LDPATH" ]; then cat "$SCRIPTDIR/board/$BOARD/LDPATH" >> "$BUILD/etc/ld-musl-${MUSL_CPU}.path" fi cp -r "$SCRIPTDIR/$PKGDIR/$PKGNAME/etc" "$BUILD" # install packages to rootfs dependencies | tsort | tac | grep -v "$PKGNAME" > "$BUILD/etc/packages" echo "toolchain" >> "$BUILD/etc/packages" while read pkgname; do if [ ! -e "$PKGDEPLOYDIR/$pkgname" ]; then continue fi cp -ru --remove-destination ${PKGDEPLOYDIR}/${pkgname}/* "$BUILD" done < "$BUILD/etc/packages" # version info local fname=$(echo "${OS_NAME}-release" | tr '[:upper:]' '[:lower:]') echo $OS_RELEASE > $BUILD/etc/$fname # setup root home directory cp -r "$BUILD/etc/skel" "$BUILD/root" chmod 750 "$BUILD/root" # move configuration to preserve directory mv ${BUILD}/etc ${BUILD}/cfg/preserve mkdir -p ${BUILD}/etc mv ${BUILD}/var/lib ${BUILD}/cfg/preserve/var_lib mv ${BUILD}/root ${BUILD}/cfg/preserve mkdir -p ${BUILD}/root chmod 750 ${BUILD}/root chmod 750 ${BUILD}/cfg/preserve/root } deploy() { local SOURCE="$1" local BUILD="$2" local DEPLOY="$3" mksquashfs "$BUILD" "$DEPLOY/rootfs.img" -all-root -no-progress -no-xattrs }