#!/bin/sh set -e SCRIPT_DIR= ARCH= PLAT= main() { SCRIPT_DIR="$(cd "${0%/*}" && pwd)" setup_arch_plat "${SCRIPT_DIR}/bootstrap-prepare.sh" stage1 } setup_arch_plat() { ARCH="$(cat /etc/proteanos_arch)" PLAT="$(cat /etc/proteanos_plat)" } stage1() { local dir opk elf_interp zlib_upstream_ver cd pkg for dir in */; do cd "${dir}" opkbuild -bC cd .. done cd .. [ -d "root_${ARCH}" ] && rm -Rf "root_${ARCH}" mkdir "root_${ARCH}" cd "root_${ARCH}" for opk in ../pkg/*_${ARCH}_${PLAT}.opk ../pkg/*_${ARCH}_all.opk \ ../pkg/*_all_${PLAT}.opk ../pkg/*_all_all.opk; do [ -f "${opk}" ] || continue tar -xzOf "${opk}" data.tar.gz | tar -xz done elf_interp="$(readelf -l bin/busybox | sed -n \ 's|^.*\[Requesting program interpreter: /\(.*\)\].*$|\1|p')" mkdir -p "${elf_interp%/*}" ln -sf "/lib/${ARCH}/${elf_interp##*/}" "${elf_interp}" sudo chroot . true sudo chroot . readelf -hl /usr/bin/readelf zlib_upstream_ver="$(printf '%s' ../pkg/zlib/zlib-*.orig.tar* | sed \ 's|^.*/zlib-\([a-z0-9.~]*\).*\.orig\.tar.*$|\1|')" tar -xjOf ../pkg/zlib/zlib-*.orig.tar* \ "zlib-${zlib_upstream_ver}/examples/fitblk.c" >fitblk.c sudo chroot . "${ARCH}-gcc" -lz -o /fitblk /fitblk.c sudo chroot . /fitblk | grep -F 'fitblk abort' >/dev/null cd .. } main "${@}"