Skip to content
Snippets Groups Projects
recipe.toml 1.45 KiB
Newer Older
[source]
git = "https://gitlab.redox-os.org/redox-os/redox-initfs.git"

[build]
template = "custom"
dependencies = [
  "drivers-initfs",
  "init",
  "logd",
  "ramfs",
  "randd",
  "redoxfs",
  "zerod",
]
script = """
INITFS_RM_BINS='redoxfs-ar redoxfs-mkfs'

Jacob Lorentzon's avatar
Jacob Lorentzon committed
mkdir -p "${COOKBOOK_BUILD}/initfs/etc"
Jacob Lorentzon's avatar
Jacob Lorentzon committed
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.
Jacob Lorentzon's avatar
Jacob Lorentzon committed
cp "${COOKBOOK_RECIPE}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc"
Ivan Tan's avatar
Ivan Tan committed
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/bin files to /bin
mkdir -p "${COOKBOOK_BUILD}/initfs/bin"
if [ -d "${COOKBOOK_BUILD}/initfs/usr/bin" ]
then
    mv "${COOKBOOK_BUILD}/initfs/usr/bin/"* "${COOKBOOK_BUILD}/initfs/bin"
    rmdir "${COOKBOOK_BUILD}/initfs/usr/bin"
fi

Jacob Lorentzon's avatar
Jacob Lorentzon committed
for bin in ${INITFS_RM_BINS}; do
  rm -f "${COOKBOOK_BUILD}/initfs/bin/$bin"
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"