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 1576Shell 205Rust 111Markdown 993774 Definiciones

gnome onda 2: cairo-shared usa la fuente GitLab + cairo-ctime-r.patch

cairo-shared murió 'Nonexistent build file boilerplate/meson.build': el release
de cairographics.org strippea boilerplate/; el canónico usa el archive de GitLab
(git tree completo) + el patch HAVE_CTIME_R. Alineo la fuente al canónico.

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

5fe6e7e3c931f280a4108196544a4efa2e98ed72 · por sergio · (hace 2 meses) · padre 5a025fe1e · ver el árbol en este commit

Delta semántico

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

4 archivos · +118 −4

diff --git a/recipes/incoming-gnome-onda2/cairo-ctime-r.patch b/recipes/incoming-gnome-onda2/cairo-ctime-r.patch
new file mode 100644
index 00000000..212d4c5d
--- /dev/null
+++ b/recipes/incoming-gnome-onda2/cairo-ctime-r.patch
@@ -0,0 +1,53 @@
+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 ⇒ 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 — 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
++++ b/meson.build
+@@ -708,4 +708,9 @@
+   endif
+ endforeach
+
++# hammer: has_function('ctime_r') sin prefix falla bajo zig/gcc+musl (prototipo desnudo choca
++# con el builtin); musl SIEMPRE provee ctime_r => forzar y evitar el fallback static de
++# cairo-ps-surface.c:105 que colisiona con la declaracion no-static de <time.h>.
++conf.set('HAVE_CTIME_R', 1)
++
+ conf.set('HAVE_STRNDUP', cc.has_function('strndup', prefix : '#include <string.h>'))
+diff -Naur a/util/meson.build b/util/meson.build
+--- a/util/meson.build
++++ b/util/meson.build
+@@ -13,4 +13,4 @@
+ endif
+
+-if conf.get('CAIRO_HAS_TRACE', 0) == 1
++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>
diff --git a/recipes/incoming-gnome-onda2/cairo-shared.toml b/recipes/incoming-gnome-onda2/cairo-shared.toml
index 9b10f4bd..b284dc17 100644
--- a/recipes/incoming-gnome-onda2/cairo-shared.toml
+++ b/recipes/incoming-gnome-onda2/cairo-shared.toml
@@ -12,9 +12,13 @@
 name    = "cairo-shared"
 version = "1.18.4"
 
+# MISMA fuente que el canónico: el archive de GitLab incluye boilerplate/ (el release de cairographics
+# lo strippea ⇒ 'Nonexistent build file boilerplate/meson.build'). + el patch HAVE_CTIME_R (probe
+# has_function de meson falla bajo zig/musl).
 [source]
-tarball = "https://cairographics.org/releases/cairo-1.18.4.tar.xz"
-sha256  = "445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb"
+tarball = "https://gitlab.freedesktop.org/cairo/cairo/-/archive/1.18.4/cairo-1.18.4.tar.bz2"
+sha256  = "6d9281e786fd289d382324d4588d59973a36911e1865b40e64f9ec39936ceba8"
+patches = ["cairo-ctime-r.patch"]
 
 [build]
 compiler = "zig-cc"
diff --git a/recipes/incoming-gnome/cairo-ctime-r.patch b/recipes/incoming-gnome/cairo-ctime-r.patch
new file mode 100644
index 00000000..212d4c5d
--- /dev/null
+++ b/recipes/incoming-gnome/cairo-ctime-r.patch
@@ -0,0 +1,53 @@
+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 ⇒ 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 — 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
++++ b/meson.build
+@@ -708,4 +708,9 @@
+   endif
+ endforeach
+
++# hammer: has_function('ctime_r') sin prefix falla bajo zig/gcc+musl (prototipo desnudo choca
++# con el builtin); musl SIEMPRE provee ctime_r => forzar y evitar el fallback static de
++# cairo-ps-surface.c:105 que colisiona con la declaracion no-static de <time.h>.
++conf.set('HAVE_CTIME_R', 1)
++
+ conf.set('HAVE_STRNDUP', cc.has_function('strndup', prefix : '#include <string.h>'))
+diff -Naur a/util/meson.build b/util/meson.build
+--- a/util/meson.build
++++ b/util/meson.build
+@@ -13,4 +13,4 @@
+ endif
+
+-if conf.get('CAIRO_HAS_TRACE', 0) == 1
++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>
diff --git a/recipes/incoming-gnome/cairo-shared.toml b/recipes/incoming-gnome/cairo-shared.toml
index 9b10f4bd..b284dc17 100644
--- a/recipes/incoming-gnome/cairo-shared.toml
+++ b/recipes/incoming-gnome/cairo-shared.toml
@@ -12,9 +12,13 @@
 name    = "cairo-shared"
 version = "1.18.4"
 
+# MISMA fuente que el canónico: el archive de GitLab incluye boilerplate/ (el release de cairographics
+# lo strippea ⇒ 'Nonexistent build file boilerplate/meson.build'). + el patch HAVE_CTIME_R (probe
+# has_function de meson falla bajo zig/musl).
 [source]
-tarball = "https://cairographics.org/releases/cairo-1.18.4.tar.xz"
-sha256  = "445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb"
+tarball = "https://gitlab.freedesktop.org/cairo/cairo/-/archive/1.18.4/cairo-1.18.4.tar.bz2"
+sha256  = "6d9281e786fd289d382324d4588d59973a36911e1865b40e64f9ec39936ceba8"
+patches = ["cairo-ctime-r.patch"]
 
 [build]
 compiler = "zig-cc"