Skip to content

CromboJambo/lfs-status

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lfc-status

Variance report: declared lfc.toml manifest vs actual system state.

Origin

Linux From Crates is a displacement manifest — a bill of materials tracking which GNU/system packages have been replaced by cargo-installed crates. lfc-status is the validation tool that checks whether the declared displacement matches reality.

Two directions of truth:

  • INDEX: does the manifest match the system? (displaced/scaffold sections)
  • MATCH: does the system match the manifest? (drift detection)

If ripgrep replaces grep in the manifest but grep is still installed via pacman, that's a real variance. If cargo install --list shows something not in the manifest, that's untracked drift.

Quick Start

# Full report
cargo run -- --manifest lfc.toml

# Variance only (missing/untracked)
cargo run -- --manifest lfc.toml --variance

# Emit bootstrap script
cargo run -- --manifest lfc.toml --bootstrap

Output Sections

Displaced (cargo)

Each declared displacement: if the crate is installed via cargo install --list, if missing.

Scaffold (pacman / system)

Each declared system dependency: · if present via pacman -Q, if missing.

Pacman Audit

Displaced replacements that are still installed via pacman. This is the gap between "declared displacement" and "actual displacement" — if you declared ripgrep replaces grep but grep is still in pacman, that's a warning.

Drift

Cargo-installed crates that exist on the system but are not declared in the manifest. Untracked crates are the shadow BOM problem.

Manifest Schema (lfc.toml)

[meta]
host   = "hostname"
init   = "dinit"
kernel = "linux-zen"
arch   = "x86_64"

[displaced]
# crate = the cargo install name
# replaces = what it displaces from pacman / GNU land
grep = { crate = "ripgrep", replaces = "grep" }

[scaffold]
# label = package name tracked via pacman
kernel = "linux-zen"
init   = "dinit"

[bootstrap]
pre   = ["base-devel", "git", "rustup"]
rust  = ["rustup default stable"]
crates = [
  "ripgrep",
  "uutils-coreutils --features all",
]
post = [
  "paru -S zed",
]

Bootstrap Output

--bootstrap emits a #!/usr/bin/env bash script with four sections:

  1. prepacman -S --noconfirm commands
  2. rust — rustup/setup commands
  3. cargo install — one per declared crate
  4. post — paru/aur commands

Building

cargo build -p lfc-status
cargo test --workspace

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors