[source] git = "https://gitlab.redox-os.org/redox-os/redox-initfs.git" [build] template = "custom" dependencies = [ "base-initfs", "bootstrap", "drivers-initfs", "redoxfs", ] script = """ INITFS_RM_BINS='redoxfs-ar redoxfs-mkfs' rm -rf "${COOKBOOK_BUILD}/initfs" mkdir -p "${COOKBOOK_BUILD}/initfs/etc" cp -r "${COOKBOOK_SYSROOT}/"* "${COOKBOOK_BUILD}/initfs" # TODO: Move init.rc to another recipe, perhaps initfs-misc? Then it can be installed as a regular dependency. cp "${COOKBOOK_RECIPE}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc" if [ -e ${COOKBOOK_RECIPE}/${TARGET}/init.rc.${BOARD} ]; then cp "${COOKBOOK_RECIPE}/${TARGET}/init.rc.${BOARD}" "${COOKBOOK_BUILD}/initfs/etc/init.rc" elif [ -e ${COOKBOOK_RECIPE}/${TARGET}/init.rc ]; then cp "${COOKBOOK_RECIPE}/${TARGET}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc" fi # Move /usr folders to / and remove links for folder in bin lib include share do rm "${COOKBOOK_BUILD}/initfs/${folder}" mv "${COOKBOOK_BUILD}/initfs/usr/${folder}" "${COOKBOOK_BUILD}/initfs/${folder}" done rmdir "${COOKBOOK_BUILD}/initfs/usr" for bin in ${INITFS_RM_BINS}; do rm -f "${COOKBOOK_BUILD}/initfs/bin/$bin" done env -u CARGO cargo run --manifest-path "${COOKBOOK_SOURCE}/tools/Cargo.toml" --bin redox-initfs-ar -- "${COOKBOOK_BUILD}/initfs" "${COOKBOOK_SYSROOT}/boot/bootstrap" -o "${COOKBOOK_BUILD}/initfs.img" mkdir -v "${COOKBOOK_STAGE}/boot" cp "${COOKBOOK_BUILD}/initfs.img" "${COOKBOOK_STAGE}/boot/initfs" """