hammer-{core,build,bootstrap,overlay,journal,mirror,upgrade,agent,recover,cli}
→ takana-*, con sus deps de workspace, sus identificadores en el fuente y las
referencias -p de los scripts.
VERIFICADO que no mueve nada del corpus: `takana hash recipes/zlib.toml`
devuelve b3:dc363f26… , idéntico a antes del renombre. Los nombres de crate no
entran en hash_inputs, pero eso se comprueba, no se supone. 600 tests en verde.
DOS BINARIOS SE CONGELAN, y no por prolijidad:
- `hammerd` — paquete Y binario. Es componente de Stage 1 de la distro (musl,
busybox, hammerd, arje-zero), lo supervisa arje-zero en el sistema arrancado,
`PRESEED=hammerd` lo nombra en selfhost-verify y sus bytes anclan el baseline
of_tree. El nombre del crate va en los símbolos ⇒ renombrarlo mueve los bytes.
- `hammer-recover` — el PAQUETE se renombra a takana-recover, el BINARIO no.
hammer-live-install.sh lo copia a /usr/sbin/hammer-recover en sistemas ya
instalados y hornea un hook de arranque que lo invoca por ese nombre:
renombrarlo rompe máquinas instaladas, no el repo.
Consecuencia que hay que anotar igual: al renombrar hammer-core, los bytes de
hammerd cambian de todos modos porque linkea contra un crate con otro nombre.
El baseline of_tree del selfhost hay que rehacerlo — es efecto de la etapa 4,
no de un cambio de hammerd.
Las referencias en comentarios de recetas y docs (rutas hammer-core/src/…)
quedan para la etapa 5: son texto, no mueven hash.
68 lines
2.2 KiB
TOML
68 lines
2.2 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/takana-core",
|
|
"crates/takana-build",
|
|
"crates/takana-bootstrap",
|
|
"crates/takana-overlay",
|
|
"crates/takana-journal",
|
|
"crates/takana-mirror",
|
|
"crates/takana-upgrade",
|
|
"crates/takana-recover",
|
|
"crates/takana-agent",
|
|
"crates/takana-cli",
|
|
"crates/hammerd",
|
|
"crates/netup",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "0.0.1"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
authors = ["sergio <gerencia@jlsoltech.com>"]
|
|
repository = "https://gitea.gioser.net/sergio/hammer"
|
|
|
|
[workspace.dependencies]
|
|
takana-core = { path = "crates/takana-core" }
|
|
takana-build = { path = "crates/takana-build" }
|
|
takana-bootstrap = { path = "crates/takana-bootstrap" }
|
|
takana-overlay = { path = "crates/takana-overlay" }
|
|
takana-journal = { path = "crates/takana-journal" }
|
|
takana-mirror = { path = "crates/takana-mirror" }
|
|
takana-upgrade = { path = "crates/takana-upgrade" }
|
|
takana-agent = { path = "crates/takana-agent" }
|
|
|
|
# shared third-party deps, pinned at the workspace level
|
|
anyhow = "1"
|
|
thiserror = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yaml = "0.9"
|
|
toml = "0.8"
|
|
# postcard + ulid: SÓLO para releer el frame del bus de arje (hammerd::arje_link). Versiones
|
|
# alineadas con las que usa arje-bus (postcard 1.1.x, ulid 1.2.x) para garantizar el mismo wire.
|
|
postcard = { version = "1", features = ["use-std"] }
|
|
ulid = { version = "1", features = ["serde"] }
|
|
blake3 = "1"
|
|
sha2 = "0.10"
|
|
hex = "0.4"
|
|
base64 = "0.22"
|
|
ed25519-dalek = "2"
|
|
getrandom = "0.2"
|
|
# `socket`/`uio`: el proxy de Wayland de qorpa necesita sendmsg/recvmsg con SCM_RIGHTS —
|
|
# Wayland pasa descriptores (wl_shm, dmabuf) por el mismo socket, y sin relayarlos no dibuja
|
|
# nada. Las features de cargo son ADITIVAS: activarlas no cambia lo que compilan los demás.
|
|
nix = { version = "0.30", default-features = false, features = ["fanotify", "fs", "user", "socket", "uio", "signal"] }
|
|
tempfile = "3"
|
|
clap = { version = "4", features = ["derive"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
[profile.release]
|
|
# small, static-friendly binaries for the userland
|
|
opt-level = "z"
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = true
|
|
panic = "abort"
|