firefox: MOZ_REQUIRE_SIGNING se desactiva con el valor VACÍO, no con cero

El primer intento murió en un segundo:

    mozbuild.configure.options.InvalidOptionError: MOZ_REQUIRE_SIGNING takes 0 values

Es una bandera booleana: el `0` no es «falso», es un VALOR que la opción no acepta. La semántica no
se dedujo, se leyó del parser de mozbuild sacado del propio tarball
(`python/mozbuild/mozbuild/configure/options.py`):

    if values == ("",):  return NegativeOptionValue()   ⇒ VAR=   (vacío) DESACTIVA
    if values == ("1",): return PositiveOptionValue()   ⇒ VAR=1  activa

Y el `export` con valor vacío es justo lo que hace llegar la variable PRESENTE y vacía: desexportarla
la dejaría sin definir y volvería al default, que acá es exigir firma porque el default sale de
`milestone.is_release_or_beta and not milestone.is_esr` — 154.0 es release.

Queda escrito en la receta con las dos líneas del parser, porque «=0 no es falso» es la clase de
detalle que cuesta una hora la segunda vez que aparece.
This commit is contained in:
Sergio
2026-09-05 15:25:48 +00:00
parent 1dc662c48d
commit 37afec380f
+9 -1
View File
@@ -174,7 +174,15 @@ export RUST_TARGET=x86_64-alpine-linux-musl
# cuenta y revisión de Mozilla por cada versión: exactamente la dependencia externa que esta distro
# existe para no tener. Es la misma postura que ya tomaba `--with-unsigned-addon-scopes`, llevada
# hasta donde de verdad hace falta.
export MOZ_REQUIRE_SIGNING=0
# ⚠ SE DESACTIVA CON EL VALOR VACÍO, NO CON CERO. `MOZ_REQUIRE_SIGNING=0` muere con
# «InvalidOptionError: MOZ_REQUIRE_SIGNING takes 0 values», porque es una bandera booleana y el `0`
# es un VALOR que no acepta. La semántica está en el propio parser de mozbuild
# (`python/mozbuild/mozbuild/configure/options.py`), y no se dedujo: se leyó del tarball —
# if values == ("",): return NegativeOptionValue() ⇒ VAR= (vacío) DESACTIVA
# if values == ("1",): return PositiveOptionValue() ⇒ VAR=1 activa
# El `export` con valor vacío es lo que hace llegar la variable PRESENTE y vacía; desexportarla la
# dejaría sin definir y volvería al default, que acá es «exigir firma».
export MOZ_REQUIRE_SIGNING=
# ── LOS PARCHES ROMPEN EL CHECKSUM DE LOS CRATES VENDORIZADOS ─────────────────────────────────
# `error: the listed checksum of third_party/rust/zeitstempel/src/unix.rs has changed`. Los crates