Cross-compiled Linux From Scratch (CLFS), adapted for PRoot targets (no reboot, no root).
Enroot picks up where mainline Cross Linux From Scratch and the LFS Cross Edition leave off. Both assume you can reboot into the target system once the temporary toolchain is built. On Android under Termux/PRoot, that assumption breaks — there's no kernel handoff, no bootloader, no root. Enroot documents and scripts the path from "cross-compiled toolchain" to "usable userland running under PRoot," which nothing else currently covers.
- The original CLFS project (2006–2017) is archived and inactive.
- Pierre Labastie's Cross Edition modernized cross-compilation for LFS 13.0, but its endpoint is "reboot into the target hardware" — not applicable to a sandboxed, rootless Android environment.
- No public project currently documents building an LFS-methodology system that ends in a PRoot namespace instead of a bootable target.
Enroot is not a fork of the LFS book — it's a continuation for a different target environment.
| Phase | Source | Notes |
|---|---|---|
| Toolchain bootstrap, temp system cross-compile | LFS 13.0 Cross Edition (credited, unmodified methodology) | Standard cross-compile-before-chroot approach |
| Target boot | Diverges here | Cross Edition: reboot into target. Enroot: no reboot — build for PRoot execution instead |
| Init / session management | Custom | No systemd-under-PRoot; elogind in place of systemd-logind |
| Desktop environment | Custom | XFCE, D-Bus org.freedesktop.login1 contract satisfied via elogind |
- Verify what XFCE actually requires without
systemd-logind(in progress) - elogind build + integration for PRoot userland
- VNC server for display output (no direct framebuffer/DRM access under PRoot)
- systemd-under-PRoot — primary anticipated blocker, likely resolved by not using systemd at all in this target (elogind-only init)
- Document divergence point precisely (which LFS chapter/step Enroot's instructions replace)
enroot/
├── README.md
├── docs/
│ ├── ALL_STARTS_HERE.md # why this exists, how it differs from Cross Edition and how can you set it up
│ ├── Enviornment-Setup.md # cross-compile phase, references upstream LFS steps
│ ├── Overview_Main.md # exact point where Enroot deviates from reboot-based CLFS
│ ├──Package_001_Linux_Headers(000).md # BUILDING THE LINUX KERNEL
│ ├── ALL THE OTHER REMAINING PACKAGES
│
├── scripts/
│ ├── build-toolchain.sh
│ ├── build-temp-system.sh
│ ├── build-proot-rootfs.sh
│ └── verify-hostreqs.sh
├── configs/
│ └── (elogind, D-Bus, XFCE session configs)
└── CREDITS.md # attribution to LFS project, Pierre Labastie's Cross Edition
Built on the methodology of:
- Linux From Scratch (Gerard Beekmans et al.)
- LFS Cross Edition (Pierre Labastie)
Enroot does not reproduce book content verbatim — it documents the additional/divergent steps needed for a PRoot target.
Creative Commons Legal Code