mirror of
https://github.com/troglobit/finit.git
synced 2026-10-02 14:02:52 +07:00
This was a tough nut to crack. Spent 3-4 calendar weeks (getting blurry now) to try and figure it all out. In the end, the following changes were necessary: - Ensure setup-root.sh is guaranteed to run before any of the tests - Give all tests their unique /etc, /tmp, and /run inside the chroot. Turns out tmpfs+overlayfs can be used unprivileged inside an unshare - A static BusyBox binary with support for mount helpers so we can do the mkdir magic in skel/etc/fstab for the /etc overlay The last item turned out to be a bit of a roller coaster ride of its own. First of all, the original binary we used was from the upstream BusyBox project[1]. I was sure it couldn't be that hard to enable the CONFIG_FEATURE_MOUNT_HELPERS ... oh boy was I wrong. To make long and tedious story short; two new projects on GitHub were created for this task: 1) troglobit/misc[2] to house a mirror of https://musl.cc toolchains and 2) troglobit/busybox-builder[3] to download, patch, and build the thing using a .config from the myLinux[4] project. Patching this .config was necessary, however, since musl libc is strict POSIX and does not have any of the BSD extensions, e.g. REG_STARTEND that is in GLIBC regex(3). [1]: https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/ [2]: https://github.com/troglobit/misc/releases/tag/11-20211120 [3]: https://github.com/troglobit/busybox-builder/releases/tag/1_35_0 [4]: https://github.com/troglobit/myLinux Signed-off-by: Joachim Wiberg <troglobit@gmail.com>