tawasuyu

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 Definiciones

base-system: foot construye — terminal Wayland 1.27.0 (último diferido)

b3:2e8e1b2d. Cierra el userland foundational. Patrón meson estilo fcft, -Dprefer_static=true
(fontconfig.a arrastra expat), -Dgrapheme-clustering=enabled (utf8proc). link=dynamic (pixman
canónica es .so-only, la misma de mirada). Trampa real: zig 0.16/clang21 daba un binario que
SIGSEGV antes de main (relro→NULL) → zig_version=0.13.0 como pixman/wayland. foot+footclient
--version OK. Runtime: necesita compositor Wayland (frente mirada) + TERM/terminfo aparte.

c87c9236ad2484ef8bc7a35420877a5d716d3355 · por sergio · (hace 3 meses) · padre e430331e2 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +20 −44

diff --git a/recipes/incoming-clib/foot.toml b/recipes/incoming-clib/foot.toml
index e64cc749..51abe352 100644
--- a/recipes/incoming-clib/foot.toml
+++ b/recipes/incoming-clib/foot.toml
@@ -1,60 +1,36 @@
-# Importada de Alpine aports por `hammer import-alpine` (Etapa G). PUNTO DE PARTIDA — pero
-# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Pendiente: el
-# sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild.
+# Importada de Alpine aports (Etapa G) — de-Alpinizada. foot = emulador de terminal Wayland
+# (dnkl). Último paquete diferido del userland foundational. meson, binario musl (dinámico: pixman).
+# Deps directas: fcft/tllist/utf8proc (familia foot, selladas) + wayland/wayland-protocols/
+# pixman/fontconfig/freetype/harfbuzz/libxkbcommon/ncurses (canónicas). Sin PGO (evita cage).
 name    = "foot"
 version = "1.27.0"
 
 [source]
 tarball = "https://codeberg.org/dnkl/foot/archive/1.27.0.tar.gz"
-# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
-# sha512 = "cb4635c2afc18799c3c5b30715e575e0fa7e1621a1b6dab27bebdb9a530fd999a7d551986404ad17aaa8a8986e7250541a33324ef4acc5a6ff8058537545400b"
-sha256  = "FIXME-sha256"
+sha256  = "4e6131cc859ec6a36569f1978cf3617cc3836a681d13d228ded1b4885dab7770"
 
 [build]
 compiler = "zig-cc"
 target   = "x86_64-linux-musl"
-link     = "static"
+# zig 0.13 como pixman/wayland canónicas: zig 0.16/clang21 produce un ejecutable musl dinámico
+# que SIGSEGV en el arranque (antes de main); 0.13 lo evita (mismo toolchain que el stack gráfico).
+zig_version = "0.13.0"
+# pixman canónica es link=dynamic (sólo .so, sin .a) — igual que la usa mirada-compositor;
+# por eso foot enlaza dinámico (estático es irreductible sin re-sellar pixman). wayland-cursor/
+# utf8proc también vienen como .so; el resto (fcft/harfbuzz/freetype/xkbcommon/z/png) son .a.
+link     = "dynamic"
 flags    = []
 
 [build.phases]
-# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático):
-compile = '''
-_abuild_phase() {
-export CFLAGS="$CFLAGS -O3" # -O3 as the package is intended to use it
-	export CXXFLAGS="$CXXFLAGS -O3"
-	export CPPFLAGS="$CPPFLAGS -O3"
-
-	abuild-meson \
-		-Db_pgo=generate \
-		-Db_lto=true \
-		-Dterminfo-base-name=foot-extra \
-		-Dutmp-backend=none \
-		. output
-	meson compile -C output
-
-	ninja -C output test
-
-	# segfault on loongarch64
-	if [ "$CARCH" != "loongarch64" ]; then
-		./pgo/full-headless-cage.sh . output
-	fi
-
-	meson configure -Db_pgo=use output
-	meson compile -C output
-}
-_abuild_phase
-'''
-# de package() de Alpine (traducido $pkgdir→/out):
-install = '''
-_abuild_phase() {
-DESTDIR="/out" meson install --no-rebuild -C output
-
-	install -Dm755 "$srcdir"/foot.initd "/out"/etc/user/init.d/foot
-}
-_abuild_phase
-'''
+# Sin PGO (Alpine usa cage headless para el profiling; aquí build directo release).
+# utmp-backend=none evita libutempter; docs=disabled evita scdoc; tests/themes/ime fuera.
+# terminfo=disabled: la ncurses canónica de hammer es libs-only (no trae `tic`); el
+# terminfo de foot es dep de RUNTIME (Alpine: ncurses-terminfo), no de build. Usar TERM=xterm-256color.
+configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --default-library=static -Dprefer_static=true -Db_lto=false -Db_pgo=off -Ddocs=disabled -Dthemes=false -Dtests=false -Dime=false -Dgrapheme-clustering=enabled -Dterminfo=disabled -Dutmp-backend=none"
+compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
+install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
 
 # depends de runtime de Alpine (NO build-deps): ncurses-terminfo
 
 [deps]
-build = ["cage", "font-dejavu", "fcft", "fontconfig", "freetype", "libxkbcommon", "ncurses", "pixman", "scdoc", "tllist", "utf8proc", "wayland", "wayland-protocols"]
+build = ["fcft", "tllist", "utf8proc", "fontconfig", "freetype", "harfbuzz", "libxkbcommon", "ncurses", "pixman", "wayland", "wayland-protocols", "libffi", "libpng", "zlib", "expat", "meson", "samurai", "python3", "pkgconf", "linux-headers"]