diff --git a/recipes/arje-logind-compat.toml b/recipes/arje-logind-compat.toml index 4a427e6e..1c3567ad 100644 --- a/recipes/arje-logind-compat.toml +++ b/recipes/arje-logind-compat.toml @@ -29,7 +29,13 @@ version = "0.0.1" [source] # El `commit` es el identificador inmutable (la URL es sólo locator, no entra al hash). repo = "gitea@git.tawasuyu.net:tawasuyu/tawasuyu.git" -commit = "06184e43a8b3179e41905dc56ba07ec569df1ebb" +commit = "e65e943ef8f6fa77ea9b8565f5d73d9f511ab0df" +# El monorepo COMMITEA su propio `vendor/` — `[patch.crates-io] smithay = { path = "vendor/smithay" }`, +# una copia parcheada de smithay que mirada necesita para el tearing. `cargo vendor` de hammer escribe +# en `vendor/` por defecto y lo pisaba: el build moría con +# `failed to read /src/vendor/smithay/.cargo-checksum.json` al resolver la dep git de taffy. Se +# vendorea a un subdir aparte. Ver [[hammer-cargo-vendor-clobbers-project-vendor]]. +cargo_vendor_dir = ".hammer-cargo-vendor" [build] compiler = "zig-cc" diff --git a/scripts/gnome/qemu-desktop-image.sh b/scripts/gnome/qemu-desktop-image.sh index ce440c4d..ef1d717a 100755 --- a/scripts/gnome/qemu-desktop-image.sh +++ b/scripts/gnome/qemu-desktop-image.sh @@ -88,14 +88,16 @@ echo "==> inyectando arje-logind-compat (el login1 del fractal)" # LEYENDO /run/systemd/{sessions,users,seats}. Pero alguien tiene que ESCRIBIR esos ficheros, y ese # alguien es arje-logind-compat, el daemon D-Bus que se hace pasar por org.freedesktop.login1. # libelogind entra solo (es dep de mutter); el daemon no, porque nadie lo declara como dep de build. -# ALC_BIN permite inyectar un binario RECIÉN COMPILADO en vez del artefacto sellado. Es para probar +# El artefacto se elige por `hammer hash` sobre la receta —el que corresponde a la receta de HOY—, no +# por el más reciente del store: con dos artefactos del mismo paquete conviviendo, la fecha no dice +# cuál es el vigente. ALC_BIN permite inyectar un binario RECIÉN COMPILADO en vez del artefacto sellado. Es para probar # un cambio en arje-compat antes de commitear/pushear tawasuyu y re-sellar la receta (la receta pina # un commit, así que sin push no hay artefacto nuevo). Lo que se pruebe así NO es reproducible: es # andamio de iteración, y el camino de producción sigue siendo el artefacto del store. if [ -n "${ALC_BIN:-}" ] && [ -x "$ALC_BIN" ]; then install -Dm755 "$ALC_BIN" "$MERGED"/usr/bin/arje-logind-compat echo " ⚠ binario LOCAL (no sellado): $ALC_BIN" -elif ALC="${ALC:-$(ls -dt store/*-arje-logind-compat 2>/dev/null | head -1)}"; [ -n "$ALC" ] && [ -d "$ALC" ]; then +elif ALC="${ALC:-store/$(./target/release/hammer --store store hash recipes/arje-logind-compat.toml 2>/dev/null | tail -1 | sed 's/^b3://')-arje-logind-compat}"; [ -d "$ALC" ]; then install -Dm755 "$ALC"/usr/bin/arje-logind-compat "$MERGED"/usr/bin/arje-logind-compat echo " ✓ $(basename "$ALC" | cut -c1-12)" else