mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-07-02 17:48:42 +08:00
Without this when rebuilding it will try to remove symlinks created by the cookbook that have been replaced with actual directories in the previous build.
45 lines
1.5 KiB
TOML
45 lines
1.5 KiB
TOML
[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 -r "${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"
|
|
"""
|