gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 815Rust 56Shell 37Markdown 291229 Sutichaykuna

recetas: las 12 del monorepo que faltaban vendorean aparte, y no a `vendor/`

Es la causa del error que hizo revertir el pin en ed9f9810, y no era el monorepo:

    failed to load checksum `.cargo-checksum.json` of smithay v0.7.0
    failed to read `/src/vendor/smithay/.cargo-checksum.json`

tawasuyu commitea su propio `vendor/`: smithay 0.7.0 parcheado POR RUTA con
[patch.crates-io]. El parche son 159 líneas en 4 ficheros, medidas bajando el .crate
de crates.io y careándolo (flip async DRM para el tearing, y dos de layer-shell: el
clamp del tamaño negativo que daba la pantalla dada vuelta, y layer_arranged_size).
Y no está bumpeado: 0.7.0 es la última publicada, así que no hay a dónde subir.

El `cargo vendor` de takana vendorea por default a `vendor/`, y eso convierte ESE dir
en reemplazo de fuente, donde cada crate debe traer `.cargo-checksum.json` — que el
patch nunca tuvo. Precisión sobre ed9f9810: el vendor no nace en 2445fa31c1 (29-jul,
donde se lo vio) sino en a37815634 (21-jul), y no está "a medias" — para un patch por
ruta cargo no pide checksum; lo pide el vendoreo.

Entonces no hace falta ni completar el vendor ni sacar smithay del monorepo, que eran
las dos salidas que nombraba ed9f9810. La tercera ya estaba escrita y es la que usan
las otras 20 recetas: `cargo_vendor_dir = ".hammer-cargo-vendor"`. Faltaba en 12, y con
el árbol fuente COMPARTIDO por commit alcanza UNA sola sin la clave para dejar el
`.cargo/config.toml` de ese árbol apuntando a `vendor/` y tumbar a las demás, tengan o
no la clave. Es lo que explica que de los primeros cinco murieran cuatro; con once pins
distintos el problema no se veía porque cada grupo tenía su propio árbol.

Dos colaterales que la clave obliga:

· mirada-greeter copiaba los XML de atspi (LOCKSTEP_XML_PATH) desde `vendor/`, que con
  la clave deja de existir. Pasa a `.hammer-cargo-vendor/` con la guarda a gritos que ya
  usa boveda — sin ella el fallo habría vuelto como el panic de zbus-lockstep-macros en
  xml/schemas/, lejos de la causa.
· boveda señalaba a mirada-greeter como el que usa `vendor/`; ya no vale.

Certificado sin red ni compilador con `takana hash`, careando `git show HEAD:` contra el
árbol: las 11 recetas que sólo suman la clave mantienen su ArtifactHash, o sea que
cargo_vendor_dir no entra en hash_inputs y nada se resella. El único que se mueve es
mirada-greeter (c85d3e58 → c8bb28cf), porque su fase compile cambió de verdad.

NO certificado en una construcción real: ninguna receta llegó nunca a construir desde un
commit de tawasuyu que traiga `vendor/smithay`. La prueba es volver a aplicar el bump a
cbff0c7d y mirar los mismos cinco primeros.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

2f4e741181a0a3090a9628a1db498936ec4aed78 · ruwaq Sergio · (28 p'unchaw ñawpaq) · tayta ecdc3fd26 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

13 qillqakuna · +101 −2

diff --git a/recipes/arje-absorb.toml b/recipes/arje-absorb.toml
index 8c5b5ba6..87aac4ba 100644
--- a/recipes/arje-absorb.toml
+++ b/recipes/arje-absorb.toml
@@ -12,6 +12,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9967b02c, 18-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/arje-getty-stub.toml b/recipes/arje-getty-stub.toml
index d583fe6c..0885ad5d 100644
--- a/recipes/arje-getty-stub.toml
+++ b/recipes/arje-getty-stub.toml
@@ -12,6 +12,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9967b02c, 18-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/arje-installer.toml b/recipes/arje-installer.toml
index e698b353..aeedc4b9 100644
--- a/recipes/arje-installer.toml
+++ b/recipes/arje-installer.toml
@@ -16,6 +16,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9967b02c, 18-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/arje-net-bring-up.toml b/recipes/arje-net-bring-up.toml
index c020a1e2..7b9506cb 100644
--- a/recipes/arje-net-bring-up.toml
+++ b/recipes/arje-net-bring-up.toml
@@ -12,6 +12,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9967b02c, 18-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/arje-packager.toml b/recipes/arje-packager.toml
index 40ef6986..a03a1ca6 100644
--- a/recipes/arje-packager.toml
+++ b/recipes/arje-packager.toml
@@ -19,6 +19,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "06184e43a8b3179e41905dc56ba07ec569df1ebb"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (06184e43, 20-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/arje-zero-attest.toml b/recipes/arje-zero-attest.toml
index b5b68ac2..c93ebf23 100644
--- a/recipes/arje-zero-attest.toml
+++ b/recipes/arje-zero-attest.toml
@@ -20,6 +20,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "06184e43a8b3179e41905dc56ba07ec569df1ebb"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (06184e43, 20-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/boveda.toml b/recipes/boveda.toml
index 4c1b173e..517822f6 100644
--- a/recipes/boveda.toml
+++ b/recipes/boveda.toml
@@ -95,7 +95,7 @@ flags    = ["-p", "pacha-boveda-llimphi", "--bin", "boveda"]
 # en CADA entrada ⇒ PANICA en el subdirectorio `xml/schemas/`. Apuntando la variable a un dir con
 # sólo los `.xml` se evita.
 #
-# ⚠ La ruta NO es `vendor/` como en `mirada-greeter`: con `cargo_vendor_dir` los crates vendoreados
+# ⚠ La ruta NO es `vendor/`: con `cargo_vendor_dir` los crates vendoreados
 # caen en `.hammer-cargo-vendor/`. Y la comprobación es a GRITOS: si mañana `atspi-common` deja de
 # vendorearse ahí, un `cp` que falla en silencio dejaría la variable apuntando a un dir vacío y el
 # panic volvería con el error lejos de la causa.
diff --git a/recipes/cosmos-cli.toml b/recipes/cosmos-cli.toml
index cbca4d74..b8b45b05 100644
--- a/recipes/cosmos-cli.toml
+++ b/recipes/cosmos-cli.toml
@@ -13,6 +13,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9967b02c, 18-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/dominium-cli.toml b/recipes/dominium-cli.toml
index 7bb16675..dafc08d4 100644
--- a/recipes/dominium-cli.toml
+++ b/recipes/dominium-cli.toml
@@ -16,6 +16,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9967b02c, 18-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/mirada-compositor.toml b/recipes/mirada-compositor.toml
index cf8496e1..6b327481 100644
--- a/recipes/mirada-compositor.toml
+++ b/recipes/mirada-compositor.toml
@@ -19,6 +19,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9a17fefcbf63ba74f45cfabc4e608e391e397b17"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9a17fefc, 14-jul) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/mirada-ctl.toml b/recipes/mirada-ctl.toml
index 5f4c1778..6666e8e1 100644
--- a/recipes/mirada-ctl.toml
+++ b/recipes/mirada-ctl.toml
@@ -13,6 +13,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9a17fefcbf63ba74f45cfabc4e608e391e397b17"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9a17fefc, 14-jul) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/mirada-greeter.toml b/recipes/mirada-greeter.toml
index 5910e165..b4e7e79f 100644
--- a/recipes/mirada-greeter.toml
+++ b/recipes/mirada-greeter.toml
@@ -18,6 +18,16 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9a17fefcbf63ba74f45cfabc4e608e391e397b17"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9a17fefc, 14-jul) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
+# Con la clave puesta los crates vendoreados caen en `.hammer-cargo-vendor/`, NO en `vendor/`:
+# la fase `compile` de abajo copia los XML de atspi desde ahí.
 
 [build]
 compiler = "zig-cc"
@@ -38,7 +48,8 @@ compile = '''
 set -e
 XMLDIR="$PWD/.atspi-lockstep-xml"
 mkdir -p "$XMLDIR"
-cp vendor/atspi-common/xml/*.xml "$XMLDIR"/
+ls .hammer-cargo-vendor/atspi-common/xml/*.xml >/dev/null 2>&1 || { echo "no hay .hammer-cargo-vendor/atspi-common/xml/*.xml — ¿cambió el vendoreo o la versión de atspi? sin esto zbus-lockstep-macros panica en xml/schemas/" >&2; exit 1; }
+cp .hammer-cargo-vendor/atspi-common/xml/*.xml "$XMLDIR"/
 export LOCKSTEP_XML_PATH="$XMLDIR"
 printf '%s\n' '#!/bin/sh' 'for a do' 'case "$a" in --target=*) a=--target=x86_64-linux-musl ;; esac' 'set -- "$@" "$a"' 'shift' 'done' 'exec zig cc -mcpu=baseline "$@"' > "$PWD/.hammer-zig-cc"
 chmod +x "$PWD/.hammer-zig-cc"
diff --git a/recipes/tinkuy-sim.toml b/recipes/tinkuy-sim.toml
index 9a727ce3..c5982abc 100644
--- a/recipes/tinkuy-sim.toml
+++ b/recipes/tinkuy-sim.toml
@@ -12,6 +12,14 @@ license = "MIT"
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
 commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+# tawasuyu COMMITEA su propio `vendor/` (smithay 0.7.0 parcheado por `[patch.crates-io]` POR
+# RUTA: 159 líneas en 4 ficheros —flip async DRM, y dos de layer-shell—). El `cargo vendor` de
+# takana vendorea por default a `vendor/`, que convierte ESE dir en reemplazo de fuente, donde
+# cada crate debe traer `.cargo-checksum.json` — que el patch nunca tuvo (`git ls-tree`: no
+# existió nunca). El pin viejo (9967b02c, 18-jun) es ANTERIOR a que ese `vendor/` naciera
+# (a37815634, 21-jul), por eso esta receta no lo traía: salta al mover el pin. No entra en
+# `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"