mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-22 04:44:19 +08:00
48 lines
1.5 KiB
TOML
48 lines
1.5 KiB
TOML
[source]
|
|
git = "https://gitlab.redox-os.org/redox-os/redox-initfs.git"
|
|
|
|
[build]
|
|
template = "custom"
|
|
dependencies = [
|
|
"bootstrap",
|
|
"drivers-initfs",
|
|
"init",
|
|
"logd",
|
|
"ramfs",
|
|
"randd",
|
|
"redoxfs",
|
|
"zerod",
|
|
]
|
|
script = """
|
|
INITFS_RM_BINS='redoxfs-ar redoxfs-mkfs'
|
|
|
|
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/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
|
|
|
|
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"
|
|
"""
|