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 1182Shell 87Rust 63Markdown 541592 Sutichaykuna

Etapa G (GUI): cairo — preserva cairo-script-interpreter.pc (fix de regresión)

El patch anterior desactivaba el subdir cairo-script ENTERO para esquivar el link de pixman de
los ejecutables csi-*, pero eso quitaba libcairoscript + cairo-script-interpreter.pc, que los
demos GTK (gtk4-hello/adwaita-hello/sourceview-hello/hammer-edit) piden por pkg-config. Ahora el
subdir se construye (librería estática + .pc) y solo los EJECUTABLES csi-* se envuelven en
if false. cairo-trace queda saltado (nada pide su .pc). Verificado: cairo-script-interpreter.pc
presente en el artefacto sellado.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

eae22122f543f0fc701dbedb02d92600b7aa04d5 · ruwaq sergio · (3 killa ñawpaq) · tayta 823c7e117 · kay commitpi sach'ata qhaway

Semántico sayk'uy

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

1 qillqakuna · +29 −20

diff --git a/recipes/cairo-ctime-r.patch b/recipes/cairo-ctime-r.patch
index 9abb7b05..212d4c5d 100644
--- a/recipes/cairo-ctime-r.patch
+++ b/recipes/cairo-ctime-r.patch
@@ -1,16 +1,16 @@
-cairo bajo zig-cc/musl: dos parches para poder construir la librería en la granja.
+cairo bajo zig-cc/musl: parches para construir la librería + su cairo-script-interpreter.pc en la granja.
 
-(1) meson.build — el loop `foreach name : check_funcs` corre `cc.has_function('ctime_r')` SIN
-prefix de header ⇒ meson genera un prototipo desnudo `char ctime_r();` que bajo zig-cc y gcc
-sobre musl choca con el builtin y el probe FALLA. Entonces cairo-ps-surface.c:105
-(`#ifndef HAVE_CTIME_R`) define un fallback `static char *ctime_r(...)` que colisiona con la
-declaración no-static de <time.h> (presente porque el build define _GNU_SOURCE) ⇒ error duro.
-musl SIEMPRE provee ctime_r; forzamos el define tras el loop (pasar _GNU_SOURCE en c_args NO
-alcanza: el probe es de prototipo desnudo, ignora el header).
+(1) meson.build — el loop `foreach name : check_funcs` corre `cc.has_function('ctime_r')` SIN prefix
+de header ⇒ prototipo desnudo que bajo zig-cc y gcc sobre musl choca con el builtin y el probe FALLA.
+Entonces cairo-ps-surface.c:105 (`#ifndef HAVE_CTIME_R`) define un fallback static que colisiona con
+<time.h> (presente por _GNU_SOURCE) ⇒ error duro. musl SIEMPRE provee ctime_r; forzamos el define.
 
-(2) util/meson.build — los ejecutables util (csi-* del intérprete cairo-script, cairo-trace) no
-linkean libpixman-1.a bajo la estrategia `no_fallback` de zig-cc. Son herramientas de dev, no la
-librería que pango/gtk4 consumen. Saltamos esos subdirs; libcairo.a se construye e instala igual.
+(2) util/meson.build — cairo-trace: sus ejecutables no linkean libpixman-1.a bajo la estrategia
+`no_fallback` de zig-cc; nada aguas abajo pide cairo-trace ⇒ se salta entero.
+
+(3) util/cairo-script/meson.build — el subdir cairo-script SÍ se construye (la librería libcairoscript
+y su `cairo-script-interpreter.pc` las piden los demos GTK), pero los EJECUTABLES csi-* fallan el mismo
+link de pixman ⇒ se envuelven en `if false`. Así queda la .pc sin los exe.
 
 diff -Naur a/meson.build b/meson.build
 --- a/meson.build
@@ -28,17 +28,26 @@ diff -Naur a/meson.build b/meson.build
 diff -Naur a/util/meson.build b/util/meson.build
 --- a/util/meson.build
 +++ b/util/meson.build
-@@ -7,10 +7,10 @@
- endif
-
--if conf.get('CAIRO_HAS_INTERPRETER', 0) == 1
-+if false  # hammer: saltar ejecutables csi-* (interprete); link de pixman falla bajo zig no_fallback
-   subdir('cairo-script')
- else
-   libcairoscript_dep = dependency('', required: false)
+@@ -13,4 +13,4 @@
  endif
 
 -if conf.get('CAIRO_HAS_TRACE', 0) == 1
-+if false  # hammer: saltar cairo-trace (mismo link de pixman bajo zig)
++if false  # hammer: saltar cairo-trace (sus exe no linkean pixman bajo zig; nada pide su .pc)
    subdir('cairo-trace')
+diff -Naur a/util/cairo-script/meson.build b/util/cairo-script/meson.build
+--- a/util/cairo-script/meson.build
++++ b/util/cairo-script/meson.build
+@@ -48,3 +48,6 @@
+ meson.override_dependency('cairo-script-interpreter', libcairoscript_dep)
+
++# hammer: los ejecutables csi-* no linkean libpixman-1.a bajo zig no_fallback; la libreria
++# libcairoscript y su cairo-script-interpreter.pc SI (los demos GTK las piden). Saltar solo los exe.
++if false
+ csi_replay_exe = executable('csi-replay', csi_replay_sources,
+@@ -64,4 +64,5 @@
+   )
+ endif
++endif
+
+ install_headers(cairoscript_interpreter_headers, subdir: 'cairo')
 </content>