From ec68fbe6f3d84d03e633dcfa1de9f906ab20a0ac Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 30 Jun 2026 12:56:44 -0400 Subject: [PATCH] =?UTF-8?q?Etapa=20G=20(GUI):=20cadena=20de=20soporte=20de?= =?UTF-8?q?=20libadwaita=20=E2=80=94=20libsass/sassc=20(C++),=20libyaml,?= =?UTF-8?q?=20curl(min),=20libxmlb,=20gettext-tiny,=20itstool(stub),=20app?= =?UTF-8?q?stream(lean)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit appstream 1.0.5 lean (compose/svg/stemming/gir/systemd off) destrabado con: gettext-tiny (msgfmt p/ i18n de meson), itstool stub (copia el join-source, sin traducciones), curl mínimo (sin TLS, solo satisface el link), libxmlb+libyaml, y sed que elimina subdir('docs/') incondicional (xsltproc+docbook). Co-Authored-By: Claude Opus 4.8 --- recipes/incoming-clib/appstream.toml | 26 ++++++++++++++++ recipes/incoming-clib/curl.toml | 21 +++++++++++++ recipes/incoming-clib/gettext-tiny.toml | 22 +++++++++++++ recipes/incoming-clib/itstool.toml | 41 +++++++++++++++++++++++++ recipes/incoming-clib/libxmlb.toml | 20 ++++++++++++ recipes/incoming-clib/libyaml.toml | 20 ++++++++++++ 6 files changed, 150 insertions(+) create mode 100644 recipes/incoming-clib/appstream.toml create mode 100644 recipes/incoming-clib/curl.toml create mode 100644 recipes/incoming-clib/gettext-tiny.toml create mode 100644 recipes/incoming-clib/itstool.toml create mode 100644 recipes/incoming-clib/libxmlb.toml create mode 100644 recipes/incoming-clib/libyaml.toml diff --git a/recipes/incoming-clib/appstream.toml b/recipes/incoming-clib/appstream.toml new file mode 100644 index 00000000..14c9d756 --- /dev/null +++ b/recipes/incoming-clib/appstream.toml @@ -0,0 +1,26 @@ +# appstream 1.0.5 — metadatos de software (libadwaita lo exige duro p/ AdwAboutDialog). meson static LEAN: +# systemd/svg/stemming/gir/vapi/docs/compose OFF (como pide el default_options de libadwaita). Solo +# glib + libxml2 + libyaml. +name = "appstream" +version = "1.0.5" + +[source] +tarball = "https://www.freedesktop.org/software/appstream/releases/AppStream-1.0.5.tar.xz" +sha256 = "ce0ed29e89abd5f0cf790ea87d792f1967c3413060beb30e63a979578d975121" +# las entradas del tar tienen `./` líder (./AppStream-1.0.5/…) ⇒ strip=2 (recorta `.` y el top-level). +strip_components = 2 + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +# subdir('docs/') es INCONDICIONAL (ignora -Ddocs=false) y exige xsltproc + stylesheets docbook-xsl +# (otro pozo). Lo elimino: man pages prescindibles para la lib que consume libadwaita. +configure = "sed -i \"\\#subdir('docs/')#d\" meson.build && PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dsystemd=false -Ddocs=false -Dapidocs=false -Dinstall-docs=false -Dstemming=false -Dsvg-support=false -Dgir=false -Dvapi=false -Dcompose=false -Dc_args=-Wno-error=date-time" +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" + +[deps] +build = ["meson", "samurai", "python3", "pkgconf", "gperf", "gettext-tiny", "itstool", "glib", "libxml2", "libyaml", "curl", "libxmlb", "zstd", "pcre2", "libffi", "zlib"] diff --git a/recipes/incoming-clib/curl.toml b/recipes/incoming-clib/curl.toml new file mode 100644 index 00000000..54b50a06 --- /dev/null +++ b/recipes/incoming-clib/curl.toml @@ -0,0 +1,21 @@ +# curl 8.11.1 — solo para satisfacer el link de appstream (libadwaita no descarga nada). Build MÍNIMO: +# sin TLS/ldap/psl/nghttp2/brotli/zstd/idn — libcurl.a presente basta. autotools static. +name = "curl" +version = "8.11.1" + +[source] +tarball = "https://curl.se/download/curl-8.11.1.tar.xz" +sha256 = "c7ca7db48b0909743eaef34250da02c19bc61d4f1dcedd6603f109409536ab56" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +configure = "./configure --prefix=/usr --build=$CBUILD --host=$CHOST --disable-shared --enable-static --without-ssl --without-libpsl --without-nghttp2 --without-brotli --without-zstd --without-libidn2 --disable-ldap --disable-ldaps --disable-docs --disable-manual --with-zlib" +compile = "make -j4" +install = "make install DESTDIR=/out" + +[deps] +build = ["zlib"] diff --git a/recipes/incoming-clib/gettext-tiny.toml b/recipes/incoming-clib/gettext-tiny.toml new file mode 100644 index 00000000..4f40fe02 --- /dev/null +++ b/recipes/incoming-clib/gettext-tiny.toml @@ -0,0 +1,22 @@ +# gettext-tiny 0.3.2 — implementación mínima de las herramientas gettext (msgfmt/xgettext/msgmerge + +# libintl) pensada para musl. Destraba el módulo i18n de meson (appstream/libadwaita lo necesitan para +# i18n.gettext()). LIBINTL=MUSL: usa la libintl que ya trae musl. Reemplaza al gettext "1.0" roto del import. +name = "gettext-tiny" +version = "0.3.2" + +[source] +tarball = "https://github.com/sabotage-linux/gettext-tiny/archive/refs/tags/v0.3.2.tar.gz" +sha256 = "29cc165e27e83d2bb3760118c2368eadab550830d962d758e51bd36eb860f383" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +configure = "true" +compile = "make -j4 LIBINTL=MUSL CC='zig cc'" +install = "make install LIBINTL=MUSL prefix=/usr DESTDIR=/out" + +[deps] +build = [] diff --git a/recipes/incoming-clib/itstool.toml b/recipes/incoming-clib/itstool.toml new file mode 100644 index 00000000..cb20cd25 --- /dev/null +++ b/recipes/incoming-clib/itstool.toml @@ -0,0 +1,41 @@ +# itstool (sustituto) — el itstool real es un script Python que exige bindings libxml2 de python (ausentes +# en el lab) y solo sirve para FUSIONAR traducciones en XML. Sin traducciones (gettext-tiny no genera .mo +# reales), un itstool que copia el join-source al output produce el metainfo SIN traducir, que es exactamente +# lo que necesita appstream/libadwaita aquí. Satisface i18n.itstool_join de meson. [source]=carrier. +name = "itstool" +version = "2.0.7" + +[source] +tarball = "https://github.com/sabotage-linux/gettext-tiny/archive/refs/tags/v0.3.2.tar.gz" +sha256 = "29cc165e27e83d2bb3760118c2368eadab550830d962d758e51bd36eb860f383" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +configure = "true" +compile = ''' +cat > itstool <<'IEOF' +#!/bin/sh +# itstool falso: parsea la invocación de meson (i18n.itstool_join) y copia el join-source (-j) al output +# (-o), ignorando its (-i) y los .mo. Resultado: XML sin traducir, válido. +in=""; out="" +while [ $# -gt 0 ]; do + case "$1" in + -j) in="$2"; shift 2;; + -o) out="$2"; shift 2;; + -i) shift 2;; + --version) echo "itstool 2.0.7 (hammer stub)"; exit 0;; + *) shift;; + esac +done +[ -n "$in" ] && [ -n "$out" ] && cp "$in" "$out" +IEOF +chmod +x itstool +''' +install = "mkdir -p /out/usr/bin && cp itstool /out/usr/bin/itstool" + +[deps] +build = [] diff --git a/recipes/incoming-clib/libxmlb.toml b/recipes/incoming-clib/libxmlb.toml new file mode 100644 index 00000000..a4bc3be9 --- /dev/null +++ b/recipes/incoming-clib/libxmlb.toml @@ -0,0 +1,20 @@ +# libxmlb 0.3.22 — cache binaria de XML (appstream la exige). meson static. glib + zstd; lo opcional off. +name = "libxmlb" +version = "0.3.22" + +[source] +tarball = "https://github.com/hughsie/libxmlb/releases/download/0.3.22/libxmlb-0.3.22.tar.xz" +sha256 = "f3c46e85588145a1a86731c77824ec343444265a457647189a43b71941b20fa0" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dintrospection=false -Dgtkdoc=false -Dtests=false -Dstemmer=false -Dcli=false -Dc_args=-Wno-error=date-time" +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" + +[deps] +build = ["meson", "samurai", "python3", "pkgconf", "glib", "zstd", "pcre2", "libffi", "zlib"] diff --git a/recipes/incoming-clib/libyaml.toml b/recipes/incoming-clib/libyaml.toml new file mode 100644 index 00000000..05b4e0b1 --- /dev/null +++ b/recipes/incoming-clib/libyaml.toml @@ -0,0 +1,20 @@ +# libyaml 0.2.5 — parser YAML (lo usa appstream). autotools static mínimo, leaf. +name = "libyaml" +version = "0.2.5" + +[source] +tarball = "https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz" +sha256 = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +configure = "./configure --prefix=/usr --build=$CBUILD --host=$CHOST --disable-shared --enable-static" +compile = "make -j4" +install = "make install DESTDIR=/out" + +[deps] +build = []