diff --git a/docs/BUILDING.md b/docs/BUILDING.md new file mode 100644 index 0000000..09633a6 --- /dev/null +++ b/docs/BUILDING.md @@ -0,0 +1,50 @@ +# Building ubuntu-fido from source + +## System dependencies + +```bash +sudo apt-get update +sudo apt-get install -y \ + build-essential pkg-config \ + libpam0g-dev libgtk-4-dev libadwaita-1-dev libfido2-dev \ + debhelper devscripts lintian +``` + +Rust toolchain: stable (1.78 minimum). Install via [rustup](https://rustup.rs). + +## Build steps + +```bash +# Pure-Rust crates (daemon, CLI, common) +cargo build --release + +# GUI (requires libgtk-4-dev + libadwaita-1-dev) +cargo build -p ubuntu-fido-gui --release + +# PAM module (requires libpam0g-dev) +make -C pam + +# Full deb build (requires all of the above) +debuild -us -uc -b +# Output: ../ubuntu-fido*.deb +``` + +## Tests + +```bash +cargo test --workspace --exclude ubuntu-fido-gui +``` + +The GUI crate has no automated tests in v1; manual smoke tests are documented in [docs/plans/2026-04-26-ubuntu-fido-design.md](plans/2026-04-26-ubuntu-fido-design.md#testing-strategy). + +## Phase 0 status + +Repository scaffolding is complete (tag `v0.1.0-scaffolding`). Subsequent phases per [docs/plans/2026-04-26-ubuntu-fido-implementation.md](plans/2026-04-26-ubuntu-fido-implementation.md). + +Build verifications NOT yet run on this machine (require `sudo apt install libpam0g-dev libgtk-4-dev libadwaita-1-dev libfido2-dev`): + +- `make -C pam` — PAM module compile +- `cargo build -p ubuntu-fido-gui --release` — GUI link +- `debuild -us -uc -b` — full deb build + +Once those packages are installed, run the three commands above to complete the Phase 0 acceptance gate.