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 1572Shell 203Rust 109Markdown 993728 Sutichaykuna

⎇ main recipes/incoming-gnome/nss.toml TOML · 82 siq'ikuna · 4.1 KB Ñawpa willay ch'uya

licencias: 936 de 1141 (82%) — detección por evidencia, con sus dos imprecisiones declaradas a6a9d59e4 · sergio ·

1# nss 3.126 — Network Security Services de Mozilla (TLS, S/MIME, PKCS#11, almacén de certificados).
2#
3# POR QUÉ ENTRA, después de haber intentado esquivarla: evolution-data-server declara
4# `-DENABLE_SMIME=OFF` y hasta documenta ese modo, pero en 3.56.2 está ROTO — src/camel/camel.c
5# incluye <nspr.h>, "nss.h", <ssl.h> SIN guardar por el #ifdef, y hace init/shutdown reales de NSS
6# (nss_initlock, NSS_Shutdown). camel-msgport.c y camel-operation.c también usan NSPR. O sea que el
7# apagado sólo compila fuera camel-smime-context.c, no camel entero. Se intentó cablear el guard que
8# el upstream olvidó en FindSMIME.cmake y el build igual cortó en el 11%: la conclusión honesta es
9# que camel REQUIERE NSS en esta versión, y arrancarlo a parches sería reescribir camel.
10#
11# Y no es deuda de una sola receta: NSS es también la base criptográfica del frente del navegador
12# (Firefox/Zen la necesitan igual), así que era una cuenta que había que pagar de todas formas.
13#
14# ── EL BUILD, QUE NO ES AUTOTOOLS NI CMAKE ──────────────────────────────────────────────────────
15# NSS usa `coreconf`, el sistema de make propio de Mozilla. Consecuencias que la receta absorbe:
16#   · NO hay ./configure. La fase configure existe igual porque si se deja vacía el lab inyecta su
17#     propio ./configure minimal, que aborta; definirla la desactiva (mismo truco que libxml2).
18#   · NO hay `make install`. Todo sale a ../dist/<OBJDIR>.OBJ/ y la instalación es a mano. El nombre
19#     del OBJDIR lo arma coreconf con la versión del kernel del constructor, así que se resuelve por
20#     glob y NO se hornea: si se escribiera literal, el artefacto dependería del uname del anfitrión.
21#   · `nss_build_all` NO sirve acá: su primer paso es build_nspr contra ../nspr, que no existe en
22#     este tarball (extrae sólo nss/). Se usa `make all` apuntando NSPR_{INCLUDE,LIB}_DIR al nspr
23#     YA SELLADO (b3:d7b71315, el que vino con spidermonkey) — se reusa, no se duplica.
24#   · NO hay nss.pc generado por el build; el tarball trae el template pkg/pkg-config/nss.pc.in y se
25#     rellena a mano. Es lo que FindSMIME.cmake de eds busca por pkg-config (`foreach(pkg nss …)`).
26#
27# NSS_USE_SYSTEM_SQLITE=1 usa la sqlite-shared de esta cola en vez de la copia in-tree de NSS:
28# una sola sqlite en la distro, no dos con versiones distintas conviviendo en el mismo proceso.
29#
30# compiler=gcc, igual que nspr: coreconf está lleno de gcc-ismos y detecta el toolchain por NS_USE_GCC.
31# Es deuda consciente del frente matar-gcc, y la misma que ya paga nspr — la pareja entra junta.
32name    = "nss"
33version = "3.126"
34license = "MPL-2.0"
35
36[source]
37tarball          = "https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_126_RTM/src/nss-3.126.tar.gz"
38sha256           = "7aa07c758be1453d82d739240b249ffb7aef0041be488067e1c0f348e1f9e337"
39strip_components = 1
40
41[build]
42compiler = "gcc"
43target   = "x86_64-linux-musl"
44link     = "dynamic"
45
46[build.phases]
47configure = "cd nss && echo 'NSS no tiene configure: el build es coreconf/make (ver comentario de la receta)'"
48
49compile = '''
50cd nss && make all -j"$(nproc)" \
51	BUILD_OPT=1 \
52	USE_64=1 \
53	NS_USE_GCC=1 \
54	NSS_ENABLE_WERROR=0 \
55	NSS_DISABLE_GTESTS=1 \
56	NSS_USE_SYSTEM_SQLITE=1 \
57	NSPR_INCLUDE_DIR=/usr/include/nspr \
58	NSPR_LIB_DIR=/usr/lib
59'''
60
61install = '''
62cd nss
63OBJDIR=$(ls -d ../dist/*.OBJ | head -1)
64echo "OBJDIR resuelto por glob: $OBJDIR"
65install -d /out/usr/lib/pkgconfig /out/usr/include/nss /out/usr/bin
66install -m755 "$OBJDIR"/lib/*.so /out/usr/lib/
67install -m644 ../dist/public/nss/*.h /out/usr/include/nss/
68for b in certutil pk12util modutil nss-policy-check; do
69	[ -x "$OBJDIR/bin/$b" ] && install -m755 "$OBJDIR/bin/$b" /out/usr/bin/ || true
70done
71sed -e 's|%prefix%|/usr|g' \
72    -e 's|%exec_prefix%|/usr|g' \
73    -e 's|%libdir%|/usr/lib|g' \
74    -e 's|%includedir%|/usr/include/nss|g' \
75    -e 's|%NSS_VERSION%|3.126|g' \
76    -e 's|%NSPR_VERSION%|4.36|g' \
77    pkg/pkg-config/nss.pc.in > /out/usr/lib/pkgconfig/nss.pc
78cat /out/usr/lib/pkgconfig/nss.pc
79'''
80
81[deps]
82build = ["make", "perl", "python3", "pkgconf", "nspr", "sqlite-shared", "zlib-shared"]