diff --git a/crates/hammer-core/src/recipe.rs b/crates/hammer-core/src/recipe.rs index b21c8957..78b9772d 100644 --- a/crates/hammer-core/src/recipe.rs +++ b/crates/hammer-core/src/recipe.rs @@ -26,6 +26,24 @@ pub struct Recipe { /// (`crate::compat`) contra el estado instalado, no el build. #[serde(default, skip_serializing_if = "Slots::is_empty")] pub slots: Slots, + /// **Bajo qué términos se redistribuye este paquete.** Expresión SPDX (`"GPL-2.0-or-later"`, + /// `"MIT OR Apache-2.0"`, `"LGPL-2.1-only AND BSD-3-Clause"`). + /// + /// No es burocracia: al distribuir BINARIOS, la GPL y familia obligan a acompañarlos del texto + /// de la licencia y a poder entregar la fuente correspondiente. Una distro que no sabe bajo qué + /// términos redistribuye lo que empaqueta no puede cumplir ninguna de las dos cosas, y eso es + /// bloqueante para publicar (SDD 19 §2.1). Medido el 2026-08-07: **0 de 1141 recetas** lo + /// declaraban. + /// + /// Igual que `evidence` y `slots`, **NO entra en `hash_inputs`** — y acá esa propiedad es la que + /// hace la deuda pagable: describe términos legales, no identidad del build, así que se puede + /// poblar en las 1141 recetas YA SELLADAS sin mover un solo `ArtifactHash` ni invalidar el + /// baseline de reproducibilidad. Si entrara al hash, poner la licencia costaría reconstruir el + /// corpus entero y por eso no se habría hecho nunca. + /// + /// `None` = deuda declarada, no «sin licencia». `scripts/licencias.sh` mide la cobertura. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub license: Option, /// Directorio base contra el que se resuelven rutas relativas de la receta /// (típicamente, `patches`). Lo fija `load_from_path`; al deserializar puro queda vacío. #[serde(skip, default)] @@ -800,6 +818,42 @@ expected_output = "b3:deadbeef" ); } + #[test] + fn licencia_round_trip_y_no_afecta_el_hash() { + // ESTE TEST ES LA RAZÓN DE QUE LA DEUDA DE LICENCIAS SEA PAGABLE. + // + // El 2026-08-07 ninguna de las 1141 recetas declaraba licencia, y sin ese dato la distro no + // puede cumplir la GPL al redistribuir binarios (SDD 19 §2.1). Poblarlo sólo es viable si + // NO mueve el `ArtifactHash`: si lo moviera, poner la licencia significaría reconstruir el + // corpus entero y perder el baseline de reproducibilidad, y nadie lo haría nunca. + // + // `hash_inputs` es una lista blanca, así que la propiedad se cumple por construcción — pero + // se clava acá para que nadie la rompa por descuido metiendo el campo en el hash. + // La línea va DELANTE: en TOML una clave suelta después de un `[table]` pertenece a esa + // tabla, no a la raíz. Puesta al final, `license` acabaría dentro de `[deps]` y se perdería + // en silencio (serde ignora campos desconocidos). Es el mismo cuidado que hay que tener al + // poblar las recetas: el campo va arriba, junto a `name` y `version`. + let con_toml = format!("license = \"GPL-3.0-or-later\"\n{SAMPLE}"); + let con = Recipe::from_toml(&con_toml).unwrap(); + assert_eq!(con.license.as_deref(), Some("GPL-3.0-or-later")); + + // Round-trip por TOML: serializa y vuelve a parsear ⇒ misma licencia. + let re = Recipe::from_toml(&con.to_toml().unwrap()).unwrap(); + assert_eq!(re.license, con.license); + + // Una receta sin el campo parsea igual (las 1141 existentes no se tocan para compilar). + let sin = Recipe::from_toml(SAMPLE).unwrap(); + assert_eq!(sin.license, None); + + // Y el hash es el MISMO con y sin licencia. + assert_eq!( + sin.hash_inputs(&[]).unwrap(), + con.hash_inputs(&[]).unwrap(), + "la licencia NO debe entrar en hash_inputs: si entrara, declararla re-hashearía las \ + 1141 recetas ya selladas y tiraría el baseline de reproducibilidad" + ); + } + #[test] fn slots_validate_rechaza_hash_sin_prefijo() { let mut s = Slots::default(); diff --git a/docs/licencias-conocidas.tsv b/docs/licencias-conocidas.tsv new file mode 100644 index 00000000..f127b15f --- /dev/null +++ b/docs/licencias-conocidas.tsv @@ -0,0 +1,233 @@ +# Tabla CURADA de licencias, para `scripts/licencias.sh --sembrar`. SDD 19 §2.1. +# +# Formato: +# +# ── LA REGLA ──────────────────────────────────────────────────────────────────────────────────── +# Acá SÓLO entra lo que se puede afirmar con seguridad, entrada por entrada. Declarar mal una +# licencia es peor que dejarla vacía: convierte un hueco visible —que alguien va a ir a llenar— en +# una afirmación falsa sobre la que alguien va a construir. Lo que no esté seguro, NO se pone: se +# queda como deuda contada por `scripts/licencias.sh`. +# +# ── POR QUÉ NO SE PUEDE AUTOMATIZAR POR PATRÓN DE NOMBRE ──────────────────────────────────────── +# Tentación evidente: «todo lo que empieza por k* es KDE ⇒ LGPL». **Falso y caro.** En este catálogo +# `kail`, `kind`, `ko`, `kopia`, `krew`, `kustomize`, `kyverno`, `katana`, `kiterunner`, `kibi`, +# `kmon`, `kondo`, `kpt`, `kbld`, `kbs2`, `knighttime` y toda la familia `kube*` son herramientas Go +# sin ninguna relación con KDE — la mayoría Apache-2.0 o MIT. El nombre no es evidencia. +# +# ── LO QUE FALTA ES SOBRE TODO Go Y Rust ─────────────────────────────────────────────────────── +# El grueso de las 1141 recetas son CLIs Go/Rust importados en masa. Para esas la licencia SÍ es +# automatizable con evidencia real y sin red: Cargo.toml trae el campo `license` y los módulos Go +# traen su LICENSE en el árbol. Es el trabajo estructural descrito en la cabecera de licencias.sh +# (capturar en la fase de fetch, que ya descarga y extrae el tarball). + +# ── toolchain y base C ───────────────────────────────────────────────────────────────────────── +musl MIT +zlib Zlib +zlib-shared Zlib +bzip2 bzip2-1.0.6 +bzip2-shared bzip2-1.0.6 +xz 0BSD +zstd BSD-3-Clause OR GPL-2.0-only +lz4 BSD-2-Clause AND GPL-2.0-only +brotli MIT +binutils GPL-3.0-or-later +gcc GPL-3.0-or-later WITH GCC-exception-3.1 +make GPL-3.0-or-later +m4 GPL-3.0-or-later +bison GPL-3.0-or-later +flex BSD-3-Clause +patch GPL-3.0-or-later +diffutils GPL-3.0-or-later +findutils GPL-3.0-or-later +coreutils GPL-3.0-or-later +grep GPL-3.0-or-later +sed GPL-3.0-or-later +gawk GPL-3.0-or-later +tar GPL-3.0-or-later +gzip GPL-3.0-or-later +bash GPL-3.0-or-later +busybox GPL-2.0-only +autoconf GPL-3.0-or-later +automake GPL-2.0-or-later +libtool GPL-2.0-or-later +gettext-tiny GPL-3.0-or-later +texinfo GPL-3.0-or-later +pkgconf ISC +cmake BSD-3-Clause +meson Apache-2.0 +samurai ISC +ninja Apache-2.0 +python3 Python-2.0 +perl Artistic-1.0-Perl OR GPL-1.0-or-later +sqlite blessing +openssl Apache-2.0 +curl curl +ca-certificates MPL-2.0 +libarchive BSD-2-Clause +libcap BSD-3-Clause OR GPL-2.0-only +libseccomp LGPL-2.1-only +bwrap LGPL-2.0-or-later +kbd GPL-2.0-or-later +util-linux GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause +e2fsprogs GPL-2.0-only AND LGPL-2.0-only AND BSD-3-Clause +linux GPL-2.0-only WITH Linux-syscall-note + +# ── bibliotecas de sistema y gráficas ────────────────────────────────────────────────────────── +expat MIT +libffi MIT +pcre2 BSD-3-Clause +libxml2 MIT +libxml2-shared MIT +libyaml MIT +libyaml-shared MIT +libpng Libpng +libpng-shared Libpng +libjpeg-turbo IJG AND BSD-3-Clause AND Zlib +libjpeg-turbo-shared IJG AND BSD-3-Clause AND Zlib +libtiff libtiff +libtiff-shared libtiff +libwebp BSD-3-Clause +freetype FTL OR GPL-2.0-or-later +freetype-shared FTL OR GPL-2.0-or-later +fontconfig MIT +fontconfig-shared MIT +harfbuzz MIT +fribidi LGPL-2.1-or-later +pixman MIT +cairo LGPL-2.1-only OR MPL-1.1 +cairo-shared LGPL-2.1-only OR MPL-1.1 +pango LGPL-2.0-or-later +graphene MIT +libepoxy MIT +mesa MIT +libdrm MIT +wayland MIT +wayland-protocols MIT +plasma-wayland-protocols MIT +xkeyboard-config MIT +libxkbcommon MIT +alsa-lib LGPL-2.1-or-later +pipewire MIT +wireplumber MIT +iso-codes LGPL-2.1-or-later +libseccomp-shared LGPL-2.1-only + +# ── GNOME / GTK ──────────────────────────────────────────────────────────────────────────────── +glib LGPL-2.1-or-later +gobject-introspection LGPL-2.0-or-later AND GPL-2.0-or-later +gdk-pixbuf LGPL-2.1-or-later +gtk4 LGPL-2.1-or-later +libadwaita LGPL-2.1-or-later +gsettings-desktop-schemas LGPL-2.1-or-later +gnome-desktop GPL-2.0-or-later AND LGPL-2.0-or-later +gnome-shell GPL-2.0-or-later +gnome-session GPL-2.0-or-later +mutter GPL-2.0-or-later +json-glib LGPL-2.1-or-later +libsoup LGPL-2.0-or-later +at-spi2-core LGPL-2.1-or-later +atk LGPL-2.0-or-later +adwaita-icon-theme LGPL-3.0-or-later OR CC-BY-SA-3.0 +hicolor GPL-2.0-or-later +accountsservice GPL-3.0-or-later +colord GPL-2.0-or-later AND LGPL-2.1-or-later +geoclue GPL-2.0-or-later +appstream LGPL-2.1-or-later +libxmlb LGPL-2.1-or-later +xdg-desktop-portal LGPL-2.1-or-later +xdg-desktop-portal-gnome LGPL-2.1-or-later + +# ── Qt ───────────────────────────────────────────────────────────────────────────────────────── +# Qt 6 open source: LGPL-3.0 o GPL (la alternativa es la licencia comercial, que no aplica acá). +qt6-qtbase LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +qt6-qtdeclarative LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +qt6-qtwayland LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +qt6-qtsvg LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +qt6-qttools LGPL-3.0-only OR GPL-3.0-only +qt6-qtshadertools LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +qt6-qt5compat LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +qt5compat LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# ── KDE Frameworks (bibliotecas: LGPL doble) ─────────────────────────────────────────────────── +# Verificadas una a una: son Frameworks de KDE, NO las herramientas Go homónimas (ver cabecera). +karchive LGPL-2.1-or-later OR LGPL-3.0-or-later +kauth LGPL-2.1-or-later OR LGPL-3.0-or-later +kbookmarks LGPL-2.1-or-later OR LGPL-3.0-or-later +kcodecs LGPL-2.1-or-later OR LGPL-3.0-or-later +kcolorscheme LGPL-2.1-or-later OR LGPL-3.0-or-later +kcompletion LGPL-2.1-or-later OR LGPL-3.0-or-later +kconfig LGPL-2.1-or-later OR LGPL-3.0-or-later +kconfigwidgets LGPL-2.1-or-later OR LGPL-3.0-or-later +kcoreaddons LGPL-2.1-or-later OR LGPL-3.0-or-later +kcrash LGPL-2.1-or-later OR LGPL-3.0-or-later +kdbusaddons LGPL-2.1-or-later OR LGPL-3.0-or-later +kdeclarative LGPL-2.1-or-later OR LGPL-3.0-or-later +kdecoration LGPL-2.1-or-later OR LGPL-3.0-or-later +kded LGPL-2.1-or-later OR LGPL-3.0-or-later +kfilemetadata LGPL-2.1-or-later OR LGPL-3.0-or-later +kglobalaccel LGPL-2.1-or-later OR LGPL-3.0-or-later +kguiaddons LGPL-2.1-or-later OR LGPL-3.0-or-later +kholidays LGPL-2.1-or-later OR LGPL-3.0-or-later +ki18n LGPL-2.1-or-later OR LGPL-3.0-or-later +kiconthemes LGPL-2.1-or-later OR LGPL-3.0-or-later +kidletime LGPL-2.1-or-later OR LGPL-3.0-or-later +kio LGPL-2.1-or-later OR LGPL-3.0-or-later +kirigami LGPL-2.1-or-later OR LGPL-3.0-or-later +kirigami-addons LGPL-2.1-or-later OR LGPL-3.0-or-later +kitemmodels LGPL-2.1-or-later OR LGPL-3.0-or-later +kitemviews LGPL-2.1-or-later OR LGPL-3.0-or-later +kjobwidgets LGPL-2.1-or-later OR LGPL-3.0-or-later +knewstuff LGPL-2.1-or-later OR LGPL-3.0-or-later +knotifications LGPL-2.1-or-later OR LGPL-3.0-or-later +knotifyconfig LGPL-2.1-or-later OR LGPL-3.0-or-later +kpackage LGPL-2.1-or-later OR LGPL-3.0-or-later +kparts LGPL-2.1-or-later OR LGPL-3.0-or-later +kplotting LGPL-2.1-or-later OR LGPL-3.0-or-later +kpty LGPL-2.1-or-later OR LGPL-3.0-or-later +kquickcharts LGPL-2.1-or-later OR LGPL-3.0-or-later +kservice LGPL-2.1-or-later OR LGPL-3.0-or-later +kstatusnotifieritem LGPL-2.1-or-later OR LGPL-3.0-or-later +ksvg LGPL-2.1-or-later OR LGPL-3.0-or-later +ktexteditor LGPL-2.1-or-later OR LGPL-3.0-or-later +ktextwidgets LGPL-2.1-or-later OR LGPL-3.0-or-later +kunitconversion LGPL-2.1-or-later OR LGPL-3.0-or-later +kwallet LGPL-2.1-or-later OR LGPL-3.0-or-later +kwayland LGPL-2.1-or-later OR LGPL-3.0-or-later +kwidgetsaddons LGPL-2.1-or-later OR LGPL-3.0-or-later +kwindowsystem LGPL-2.1-or-later OR LGPL-3.0-or-later +kxmlgui LGPL-2.1-or-later OR LGPL-3.0-or-later +kcmutils LGPL-2.1-or-later OR LGPL-3.0-or-later +kdnssd LGPL-2.1-or-later OR LGPL-3.0-or-later +attica LGPL-2.1-or-later OR LGPL-3.0-or-later +kactivitymanagerd GPL-2.0-or-later +plasma-activities LGPL-2.1-or-later OR LGPL-3.0-or-later +plasma-activities-stats LGPL-2.1-or-later OR LGPL-3.0-or-later +plasma5support LGPL-2.1-or-later OR LGPL-3.0-or-later + +# ── Plasma y aplicaciones KDE (GPL) ──────────────────────────────────────────────────────────── +kwin GPL-2.0-or-later +plasma-workspace GPL-2.0-or-later +plasma-desktop GPL-2.0-or-later +plasma-integration LGPL-2.1-or-later OR LGPL-3.0-or-later +plasma-nm GPL-2.0-or-later +plasma-pa GPL-2.0-or-later +kscreen GPL-2.0-or-later +kscreenlocker GPL-2.0-or-later +kglobalacceld GPL-2.0-or-later +krunner LGPL-2.1-or-later OR LGPL-3.0-or-later +kmenuedit GPL-2.0-or-later +kinfocenter GPL-2.0-or-later +kpipewire GPL-2.0-or-later OR LGPL-2.1-or-later +breeze GPL-2.0-or-later +breeze-icons LGPL-3.0-or-later +ark GPL-2.0-or-later +kate LGPL-2.0-or-later +konsole GPL-2.0-or-later +dolphin GPL-2.0-or-later +kcalc GPL-2.0-or-later +kcharselect GPL-2.0-or-later +kdf GPL-2.0-or-later +kfind GPL-2.0-or-later +kruler GPL-2.0-or-later +kwalletmanager GPL-2.0-or-later +kquickimageeditor LGPL-2.1-or-later OR LGPL-3.0-or-later diff --git a/recipes/appstream.toml b/recipes/appstream.toml index 0cfe2394..1517697e 100644 --- a/recipes/appstream.toml +++ b/recipes/appstream.toml @@ -3,6 +3,7 @@ # glib + libxml2 + libyaml. name = "appstream" version = "1.0.5" +license = "LGPL-2.1-or-later" [source] tarball = "https://www.freedesktop.org/software/appstream/releases/AppStream-1.0.5.tar.xz" diff --git a/recipes/bash.toml b/recipes/bash.toml index d0a65972..c58cfff6 100644 --- a/recipes/bash.toml +++ b/recipes/bash.toml @@ -3,6 +3,7 @@ # limpio de GNU (5.3 base, sin los parches upstream), build estático musl. name = "bash" version = "5.3" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz" diff --git a/recipes/binutils.toml b/recipes/binutils.toml index 47caf980..385224ce 100644 --- a/recipes/binutils.toml +++ b/recipes/binutils.toml @@ -28,6 +28,7 @@ name = "binutils" version = "2.45.1" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/binutils/binutils-2.45.1.tar.gz" diff --git a/recipes/bison.toml b/recipes/bison.toml index dee0f7f7..cc8d0f45 100644 --- a/recipes/bison.toml +++ b/recipes/bison.toml @@ -9,6 +9,7 @@ name = "bison" version = "3.8.2" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.gz" diff --git a/recipes/brotli.toml b/recipes/brotli.toml index c4dd13e2..12ea9398 100644 --- a/recipes/brotli.toml +++ b/recipes/brotli.toml @@ -4,6 +4,7 @@ # hay que declararlo en [deps].build para que el lab lo materialice (patrón libjpeg-turbo/libtiff). name = "brotli" version = "1.2.0" +license = "MIT" [source] tarball = "https://github.com/google/brotli/archive/refs/tags/v1.2.0.tar.gz" diff --git a/recipes/busybox.toml b/recipes/busybox.toml index 85b0fd98..34b6a8d6 100644 --- a/recipes/busybox.toml +++ b/recipes/busybox.toml @@ -10,6 +10,7 @@ name = "busybox" version = "1.36.1" +license = "GPL-2.0-only" [source] tarball = "https://busybox.net/downloads/busybox-1.36.1.tar.bz2" diff --git a/recipes/bwrap.toml b/recipes/bwrap.toml index b748cd1e..2f7627c7 100644 --- a/recipes/bwrap.toml +++ b/recipes/bwrap.toml @@ -20,6 +20,7 @@ name = "bwrap" version = "0.11.0" +license = "LGPL-2.0-or-later" [source] tarball = "https://github.com/containers/bubblewrap/releases/download/v0.11.0/bubblewrap-0.11.0.tar.xz" diff --git a/recipes/bzip2.toml b/recipes/bzip2.toml index 0745ca0a..8979c914 100644 --- a/recipes/bzip2.toml +++ b/recipes/bzip2.toml @@ -2,6 +2,7 @@ # De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), make directo, install con PREFIX (el Makefile no usa DESTDIR). name = "bzip2" version = "1.0.8" +license = "bzip2-1.0.6" [source] tarball = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" diff --git a/recipes/ca-certificates.toml b/recipes/ca-certificates.toml index 8517d91a..be8cdbbc 100644 --- a/recipes/ca-certificates.toml +++ b/recipes/ca-certificates.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "ca-certificates" version = "20260611" +license = "MPL-2.0" [source] tarball = "https://gitlab.alpinelinux.org/alpine/ca-certificates/-/archive/20260611/ca-certificates-20260611.tar.bz2" diff --git a/recipes/cairo.toml b/recipes/cairo.toml index e769aa68..2fc3a3b4 100644 --- a/recipes/cairo.toml +++ b/recipes/cairo.toml @@ -1,6 +1,7 @@ # cairo 1.18.4 — render 2D vectorial (base de pango/GTK). meson static, backends X/quartz/win off. name = "cairo" version = "1.18.4" +license = "LGPL-2.1-only OR MPL-1.1" [source] tarball = "https://gitlab.freedesktop.org/cairo/cairo/-/archive/1.18.4/cairo-1.18.4.tar.bz2" sha256 = "6d9281e786fd289d382324d4588d59973a36911e1865b40e64f9ec39936ceba8" diff --git a/recipes/cmake.toml b/recipes/cmake.toml index 341229de..eaf35a07 100644 --- a/recipes/cmake.toml +++ b/recipes/cmake.toml @@ -27,6 +27,7 @@ name = "cmake" version = "3.31.6" +license = "BSD-3-Clause" [source] tarball = "https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6.tar.gz" diff --git a/recipes/coreutils.toml b/recipes/coreutils.toml index 586ed17f..bdbca9bb 100644 --- a/recipes/coreutils.toml +++ b/recipes/coreutils.toml @@ -18,6 +18,7 @@ name = "coreutils" version = "9.8" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/coreutils/coreutils-9.8.tar.gz" diff --git a/recipes/curl.toml b/recipes/curl.toml index f64fbde1..e1dfe8d9 100644 --- a/recipes/curl.toml +++ b/recipes/curl.toml @@ -5,6 +5,7 @@ # - drop de deps ausentes: --disable-ares, --without-{libidn2,nghttp2,libpsl,libssh2}. HTTP/HTTPS ok. name = "curl" version = "8.20.0" +license = "curl" [source] tarball = "https://curl.se/download/curl-8.20.0.tar.xz" diff --git a/recipes/diffutils.toml b/recipes/diffutils.toml index 6e5a6ae6..abef90b4 100644 --- a/recipes/diffutils.toml +++ b/recipes/diffutils.toml @@ -10,6 +10,7 @@ name = "diffutils" version = "0.5.0" +license = "GPL-3.0-or-later" [source] repo = "https://github.com/uutils/diffutils" diff --git a/recipes/e2fsprogs.toml b/recipes/e2fsprogs.toml index b18fd76a..bd4c6137 100644 --- a/recipes/e2fsprogs.toml +++ b/recipes/e2fsprogs.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "e2fsprogs" version = "1.47.4" +license = "GPL-2.0-only AND LGPL-2.0-only AND BSD-3-Clause" [source] tarball = "https://github.com/tytso/e2fsprogs/archive/v1.47.4.tar.gz" diff --git a/recipes/expat.toml b/recipes/expat.toml index de0577e6..5e896eb3 100644 --- a/recipes/expat.toml +++ b/recipes/expat.toml @@ -2,6 +2,7 @@ # De-Alpinizada (Etapa G): compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split explícito, estático. Sin deps externas. name = "expat" version = "2.8.1" +license = "MIT" [source] tarball = "https://github.com/libexpat/libexpat/releases/download/R_2_8_1/expat-2.8.1.tar.xz" diff --git a/recipes/findutils.toml b/recipes/findutils.toml index 5578917a..7fa2bcff 100644 --- a/recipes/findutils.toml +++ b/recipes/findutils.toml @@ -16,6 +16,7 @@ name = "findutils" version = "0.9.1" +license = "GPL-3.0-or-later" [source] repo = "https://github.com/uutils/findutils" diff --git a/recipes/flex.toml b/recipes/flex.toml index 9bf025df..45edc3fa 100644 --- a/recipes/flex.toml +++ b/recipes/flex.toml @@ -8,6 +8,7 @@ name = "flex" version = "2.6.4" +license = "BSD-3-Clause" [source] tarball = "https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz" diff --git a/recipes/fontconfig.toml b/recipes/fontconfig.toml index 5adbb841..1a77baaa 100644 --- a/recipes/fontconfig.toml +++ b/recipes/fontconfig.toml @@ -1,6 +1,7 @@ # fontconfig 2.18.1 — configuración/cache de fuentes (lo usa cairo/pango). autotools static. name = "fontconfig" version = "2.18.1" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/2.18.1/fontconfig-2.18.1.tar.xz" sha256 = "2300f3dbfa7253b3a44f4feecdbc8dfa45dde5dc2cfb71fceaf31f394cb41031" diff --git a/recipes/freetype.toml b/recipes/freetype.toml index 0d82bff0..8017e400 100644 --- a/recipes/freetype.toml +++ b/recipes/freetype.toml @@ -1,6 +1,7 @@ # freetype 2.14.3 — lib C base (de-Alpinizada, Etapa G). compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, estático. name = "freetype" version = "2.14.3" +license = "FTL OR GPL-2.0-or-later" [source] tarball = "https://download.savannah.gnu.org/releases/freetype/freetype-2.14.3.tar.xz" diff --git a/recipes/fribidi.toml b/recipes/fribidi.toml index 36352269..17976863 100644 --- a/recipes/fribidi.toml +++ b/recipes/fribidi.toml @@ -2,6 +2,7 @@ # mínimo, leaf (sin deps). name = "fribidi" version = "1.0.16" +license = "LGPL-2.1-or-later" [source] tarball = "https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz" diff --git a/recipes/gawk.toml b/recipes/gawk.toml index 5c18555d..1b83a5a9 100644 --- a/recipes/gawk.toml +++ b/recipes/gawk.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "gawk" version = "5.3.2" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz" diff --git a/recipes/gdk-pixbuf.toml b/recipes/gdk-pixbuf.toml index 38520a0d..384c7cec 100644 --- a/recipes/gdk-pixbuf.toml +++ b/recipes/gdk-pixbuf.toml @@ -3,6 +3,7 @@ # por firma built-in; el sniffing GIO/mime es solo para content-type en runtime, innecesario p/ GTK4. name = "gdk-pixbuf" version = "2.44.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gdk-pixbuf/2.44/gdk-pixbuf-2.44.6.tar.xz" sha256 = "140c2d0b899fcf853ee92b26373c9dc228dbcde0820a4246693f4328a27466fa" diff --git a/recipes/gettext-tiny.toml b/recipes/gettext-tiny.toml index 02e5b103..5881174a 100644 --- a/recipes/gettext-tiny.toml +++ b/recipes/gettext-tiny.toml @@ -3,6 +3,7 @@ # 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" +license = "GPL-3.0-or-later" [source] tarball = "https://github.com/sabotage-linux/gettext-tiny/archive/refs/tags/v0.3.2.tar.gz" diff --git a/recipes/glib.toml b/recipes/glib.toml index f2a73dd0..ead9f71b 100644 --- a/recipes/glib.toml +++ b/recipes/glib.toml @@ -1,6 +1,7 @@ # glib 2.88.1 — la fundación de GTK (objetos/loops/utilidades). meson static, nls off (sin gettext). name = "glib" version = "2.88.1" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz" sha256 = "51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e" diff --git a/recipes/graphene.toml b/recipes/graphene.toml index 42f88af2..a83d63b7 100644 --- a/recipes/graphene.toml +++ b/recipes/graphene.toml @@ -1,6 +1,7 @@ # graphene 1.10.8 — tipos/álgebra de vectores y matrices (GTK4/GSK). meson static, usa glib. name = "graphene" version = "1.10.8" +license = "MIT" [source] tarball = "https://download.gnome.org/sources/graphene/1.10/graphene-1.10.8.tar.xz" sha256 = "a37bb0e78a419dcbeaa9c7027bcff52f5ec2367c25ec859da31dfde2928f279a" diff --git a/recipes/grep.toml b/recipes/grep.toml index 02baaf9b..d259a494 100644 --- a/recipes/grep.toml +++ b/recipes/grep.toml @@ -9,6 +9,7 @@ name = "grep" version = "3.12" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/grep/grep-3.12.tar.gz" diff --git a/recipes/gtk4.toml b/recipes/gtk4.toml index e4b78d85..abda9b44 100644 --- a/recipes/gtk4.toml +++ b/recipes/gtk4.toml @@ -4,6 +4,7 @@ # Deps = cierre transitivo .pc completo (pkg-config estático resuelve Requires.private). name = "gtk4" version = "4.18.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gtk/4.18/gtk-4.18.6.tar.xz" diff --git a/recipes/gzip.toml b/recipes/gzip.toml index 18ad5dfc..353999e9 100644 --- a/recipes/gzip.toml +++ b/recipes/gzip.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "gzip" version = "1.14" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz" diff --git a/recipes/harfbuzz.toml b/recipes/harfbuzz.toml index 8b49aa73..45f2e32d 100644 --- a/recipes/harfbuzz.toml +++ b/recipes/harfbuzz.toml @@ -1,6 +1,7 @@ # harfbuzz 14.2.1 — shaping de texto (lo usa pango). meson static. glib=enabled: GTK4 incluye . name = "harfbuzz" version = "14.2.1" +license = "MIT" [source] tarball = "https://github.com/harfbuzz/harfbuzz/releases/download/14.2.1/harfbuzz-14.2.1.tar.xz" sha256 = "a54a5d8e9380a41fbb762ce367bcbf7704792dfca0d93f1bbca86c5a57902e0e" diff --git a/recipes/incoming-cosmic/alsa-lib.toml b/recipes/incoming-cosmic/alsa-lib.toml index 2a07f967..b59bda85 100644 --- a/recipes/incoming-cosmic/alsa-lib.toml +++ b/recipes/incoming-cosmic/alsa-lib.toml @@ -5,6 +5,7 @@ # --disable-python: los bindings pyalsa exigen headers de python + no hacen falta. Sin deps externas. name = "alsa-lib" version = "1.2.14" +license = "LGPL-2.1-or-later" [source] tarball = "https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.14.tar.bz2" diff --git a/recipes/incoming-cosmic/json-glib.toml b/recipes/incoming-cosmic/json-glib.toml index 13218f35..17be3927 100644 --- a/recipes/incoming-cosmic/json-glib.toml +++ b/recipes/incoming-cosmic/json-glib.toml @@ -20,6 +20,7 @@ # el corpus sólo tiene gettext-tiny. name = "json-glib" version = "1.10.8" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/json-glib/1.10/json-glib-1.10.8.tar.xz" diff --git a/recipes/incoming-cosmic/pipewire.toml b/recipes/incoming-cosmic/pipewire.toml index a66666ef..a25926be 100644 --- a/recipes/incoming-cosmic/pipewire.toml +++ b/recipes/incoming-cosmic/pipewire.toml @@ -54,6 +54,7 @@ # Quitando la dep, meson saltea pw-top y el resto construye. name = "pipewire" version = "1.2.7" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/1.2.7/pipewire-1.2.7.tar.gz" diff --git a/recipes/incoming-cosmic/wireplumber.toml b/recipes/incoming-cosmic/wireplumber.toml index ab1cec75..3e9fdfeb 100644 --- a/recipes/incoming-cosmic/wireplumber.toml +++ b/recipes/incoming-cosmic/wireplumber.toml @@ -48,6 +48,7 @@ # porque nadie carga `Wp-0.5` por typelib. name = "wireplumber" version = "0.5.15" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/0.5.15/wireplumber-0.5.15.tar.gz" diff --git a/recipes/incoming-cosmic/xdg-desktop-portal.toml b/recipes/incoming-cosmic/xdg-desktop-portal.toml index aa7e37e6..4e950dad 100644 --- a/recipes/incoming-cosmic/xdg-desktop-portal.toml +++ b/recipes/incoming-cosmic/xdg-desktop-portal.toml @@ -29,6 +29,7 @@ # `docbook-docs`/`pytest` — documentación y tests. name = "xdg-desktop-portal" version = "1.18.4" +license = "LGPL-2.1-or-later" [source] tarball = "https://github.com/flatpak/xdg-desktop-portal/releases/download/1.18.4/xdg-desktop-portal-1.18.4.tar.xz" diff --git a/recipes/incoming-cosmic/xkeyboard-config.toml b/recipes/incoming-cosmic/xkeyboard-config.toml index efc3c2f0..ea61893c 100644 --- a/recipes/incoming-cosmic/xkeyboard-config.toml +++ b/recipes/incoming-cosmic/xkeyboard-config.toml @@ -4,6 +4,7 @@ # Meson, sin compilación real (instala datos + .pc). nls off (evita gettext); sin libxml2 (validación). name = "xkeyboard-config" version = "2.44" +license = "MIT" [source] tarball = "https://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.44.tar.xz" diff --git a/recipes/incoming-cosmic/zlib-shared.toml b/recipes/incoming-cosmic/zlib-shared.toml index 35b0de5c..e4d9acdc 100644 --- a/recipes/incoming-cosmic/zlib-shared.toml +++ b/recipes/incoming-cosmic/zlib-shared.toml @@ -17,6 +17,7 @@ name = "zlib-shared" version = "1.3.1" +license = "Zlib" [source] tarball = "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" diff --git a/recipes/incoming-gnome-onda1/glib.toml b/recipes/incoming-gnome-onda1/glib.toml index f300b261..dfff09b4 100644 --- a/recipes/incoming-gnome-onda1/glib.toml +++ b/recipes/incoming-gnome-onda1/glib.toml @@ -21,6 +21,7 @@ # el consumidor estático encuentra el `.a` y el scanner encuentra el `.so`. name = "glib" version = "2.88.1" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz" diff --git a/recipes/incoming-gnome-onda1/gnome-desktop.toml b/recipes/incoming-gnome-onda1/gnome-desktop.toml index e3b4fa81..ead05f9f 100644 --- a/recipes/incoming-gnome-onda1/gnome-desktop.toml +++ b/recipes/incoming-gnome-onda1/gnome-desktop.toml @@ -13,6 +13,7 @@ # el logind/udev lo cubre arje). backend GL vía gtk4 (ya wayland-only, sin X11). name = "gnome-desktop" version = "44.5" +license = "GPL-2.0-or-later AND LGPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gnome-desktop/44/gnome-desktop-44.5.tar.xz" diff --git a/recipes/incoming-gnome-onda1/gobject-introspection.toml b/recipes/incoming-gnome-onda1/gobject-introspection.toml index 1de8dfbe..4f2a091c 100644 --- a/recipes/incoming-gnome-onda1/gobject-introspection.toml +++ b/recipes/incoming-gnome-onda1/gobject-introspection.toml @@ -14,6 +14,7 @@ # la primera — dejar como frontera medida, no como sellado asumido. name = "gobject-introspection" version = "1.84.0" +license = "LGPL-2.0-or-later AND GPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz" diff --git a/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml b/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml index 14c856f8..76df8499 100644 --- a/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml +++ b/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml @@ -6,6 +6,7 @@ # lo pidieran vía typelib, se re-activa). Sin docs/tests. name = "gsettings-desktop-schemas" version = "48.0" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gsettings-desktop-schemas/48/gsettings-desktop-schemas-48.0.tar.xz" diff --git a/recipes/incoming-gnome-onda2/cairo-shared.toml b/recipes/incoming-gnome-onda2/cairo-shared.toml index 962a0798..e18a4735 100644 --- a/recipes/incoming-gnome-onda2/cairo-shared.toml +++ b/recipes/incoming-gnome-onda2/cairo-shared.toml @@ -11,6 +11,7 @@ # estado). expat canónico (--with-pic ⇒ se embebe). Ver [[gnome-introspection-dinamica]]. name = "cairo-shared" version = "1.18.4" +license = "LGPL-2.1-only OR MPL-1.1" # Release ESTABLE de cairographics.org (hash fijo). El canónico usa el archive de GitLab, que NO es # determinista (recomprime al vuelo: cada fetch da otro sha256 ⇒ imposible de pinnear). El release diff --git a/recipes/incoming-gnome-onda2/fontconfig-shared.toml b/recipes/incoming-gnome-onda2/fontconfig-shared.toml index 2d0cbcd9..fb94611f 100644 --- a/recipes/incoming-gnome-onda2/fontconfig-shared.toml +++ b/recipes/incoming-gnome-onda2/fontconfig-shared.toml @@ -7,6 +7,7 @@ # libpng.pc → zlib); sin ellos pkg-config no resuelve freetype2 y ./configure aborta (gotcha .pc transitivo). name = "fontconfig-shared" version = "2.18.1" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/2.18.1/fontconfig-2.18.1.tar.xz" diff --git a/recipes/incoming-gnome-onda2/freetype-shared.toml b/recipes/incoming-gnome-onda2/freetype-shared.toml index 8643116d..dbde8863 100644 --- a/recipes/incoming-gnome-onda2/freetype-shared.toml +++ b/recipes/incoming-gnome-onda2/freetype-shared.toml @@ -11,6 +11,7 @@ # no hay brotli sellado (sólo afecta fuentes WOFF2). zlib/png dinámicos vía las variantes -shared. name = "freetype-shared" version = "2.14.3" +license = "FTL OR GPL-2.0-or-later" [source] tarball = "https://download.savannah.gnu.org/releases/freetype/freetype-2.14.3.tar.xz" diff --git a/recipes/incoming-gnome-onda2/gdk-pixbuf.toml b/recipes/incoming-gnome-onda2/gdk-pixbuf.toml index 3c9f4480..124671a2 100644 --- a/recipes/incoming-gnome-onda2/gdk-pixbuf.toml +++ b/recipes/incoming-gnome-onda2/gdk-pixbuf.toml @@ -6,6 +6,7 @@ # Mantengo el resto de flags de la corpus (leaf PNG-only, -Dgio_sniffing=false esquiva shared-mime-info). name = "gdk-pixbuf" version = "2.44.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gdk-pixbuf/2.44/gdk-pixbuf-2.44.6.tar.xz" diff --git a/recipes/incoming-gnome-onda2/glib.toml b/recipes/incoming-gnome-onda2/glib.toml index f300b261..dfff09b4 100644 --- a/recipes/incoming-gnome-onda2/glib.toml +++ b/recipes/incoming-gnome-onda2/glib.toml @@ -21,6 +21,7 @@ # el consumidor estático encuentra el `.a` y el scanner encuentra el `.so`. name = "glib" version = "2.88.1" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz" diff --git a/recipes/incoming-gnome-onda2/gobject-introspection.toml b/recipes/incoming-gnome-onda2/gobject-introspection.toml index 1de8dfbe..4f2a091c 100644 --- a/recipes/incoming-gnome-onda2/gobject-introspection.toml +++ b/recipes/incoming-gnome-onda2/gobject-introspection.toml @@ -14,6 +14,7 @@ # la primera — dejar como frontera medida, no como sellado asumido. name = "gobject-introspection" version = "1.84.0" +license = "LGPL-2.0-or-later AND GPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz" diff --git a/recipes/incoming-gnome-onda2/graphene.toml b/recipes/incoming-gnome-onda2/graphene.toml index 0fd8e350..6dc6cc3d 100644 --- a/recipes/incoming-gnome-onda2/graphene.toml +++ b/recipes/incoming-gnome-onda2/graphene.toml @@ -9,6 +9,7 @@ # con la estática. name = "graphene" version = "1.10.8" +license = "MIT" [source] tarball = "https://download.gnome.org/sources/graphene/1.10/graphene-1.10.8.tar.xz" diff --git a/recipes/incoming-gnome-onda2/gtk4.toml b/recipes/incoming-gnome-onda2/gtk4.toml index 3c4e1046..98c95100 100644 --- a/recipes/incoming-gnome-onda2/gtk4.toml +++ b/recipes/incoming-gnome-onda2/gtk4.toml @@ -15,6 +15,7 @@ # símbolo/estado duplicado, escalar la lib culpable a su propia isla. Esperar walls en el worker. name = "gtk4" version = "4.18.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gtk/4.18/gtk-4.18.6.tar.xz" diff --git a/recipes/incoming-gnome-onda2/harfbuzz.toml b/recipes/incoming-gnome-onda2/harfbuzz.toml index 2e6552c5..039bb6e6 100644 --- a/recipes/incoming-gnome-onda2/harfbuzz.toml +++ b/recipes/incoming-gnome-onda2/harfbuzz.toml @@ -8,6 +8,7 @@ # coherente). Sombrea el corpus SÓLO para la cola GNOME. name = "harfbuzz" version = "14.2.1" +license = "MIT" [source] tarball = "https://github.com/harfbuzz/harfbuzz/releases/download/14.2.1/harfbuzz-14.2.1.tar.xz" diff --git a/recipes/incoming-gnome-onda2/libjpeg-turbo-shared.toml b/recipes/incoming-gnome-onda2/libjpeg-turbo-shared.toml index 44f74cee..e3dc03a6 100644 --- a/recipes/incoming-gnome-onda2/libjpeg-turbo-shared.toml +++ b/recipes/incoming-gnome-onda2/libjpeg-turbo-shared.toml @@ -4,6 +4,7 @@ # zlib-shared/bzip2-shared. Nombre distinto para no colisionar con el canónico. gwenview lo linkea. name = "libjpeg-turbo-shared" version = "3.1.3" +license = "IJG AND BSD-3-Clause AND Zlib" [source] tarball = "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.3/libjpeg-turbo-3.1.3.tar.gz" diff --git a/recipes/incoming-gnome-onda2/libpng-shared.toml b/recipes/incoming-gnome-onda2/libpng-shared.toml index cb9c9ad0..ec37536d 100644 --- a/recipes/incoming-gnome-onda2/libpng-shared.toml +++ b/recipes/incoming-gnome-onda2/libpng-shared.toml @@ -3,6 +3,7 @@ # zlib-shared/xz-shared: autotools --enable-shared, zig-cc, contra zlib-shared (libz.so). gwenview linkea. name = "libpng-shared" version = "1.6.58" +license = "Libpng" [source] tarball = "https://downloads.sourceforge.net/libpng/libpng-1.6.58.tar.gz" diff --git a/recipes/incoming-gnome-onda2/libtiff-shared.toml b/recipes/incoming-gnome-onda2/libtiff-shared.toml index 1c723b4f..6e84552e 100644 --- a/recipes/incoming-gnome-onda2/libtiff-shared.toml +++ b/recipes/incoming-gnome-onda2/libtiff-shared.toml @@ -4,6 +4,7 @@ # resuelve ('undefined inflate'). La .so lo resuelve por NEEDED. Ver [[gnome-introspection-dinamica]]. name = "libtiff-shared" version = "4.7.0" +license = "libtiff" [source] tarball = "https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz" diff --git a/recipes/incoming-gnome-onda2/pango.toml b/recipes/incoming-gnome-onda2/pango.toml index 9a80bbcb..da518662 100644 --- a/recipes/incoming-gnome-onda2/pango.toml +++ b/recipes/incoming-gnome-onda2/pango.toml @@ -11,6 +11,7 @@ # escala cairo/etc. a su propia isla dinámica. NO persigo el cierre dinámico transitivo completo a ciegas. name = "pango" version = "1.57.1" +license = "LGPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/pango/1.57/pango-1.57.1.tar.xz" diff --git a/recipes/incoming-gnome-onda2/zlib-shared.toml b/recipes/incoming-gnome-onda2/zlib-shared.toml index 35b0de5c..e4d9acdc 100644 --- a/recipes/incoming-gnome-onda2/zlib-shared.toml +++ b/recipes/incoming-gnome-onda2/zlib-shared.toml @@ -17,6 +17,7 @@ name = "zlib-shared" version = "1.3.1" +license = "Zlib" [source] tarball = "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" diff --git a/recipes/incoming-gnome/accountsservice.toml b/recipes/incoming-gnome/accountsservice.toml index 9371c7bf..d067334c 100644 --- a/recipes/incoming-gnome/accountsservice.toml +++ b/recipes/incoming-gnome/accountsservice.toml @@ -80,6 +80,7 @@ # deps. Se encuentra arrancando, no compilando. name = "accountsservice" version = "23.13.9" +license = "GPL-3.0-or-later" [source] tarball = "https://www.freedesktop.org/software/accountsservice/accountsservice-23.13.9.tar.xz" diff --git a/recipes/incoming-gnome/adwaita-icon-theme.toml b/recipes/incoming-gnome/adwaita-icon-theme.toml index 8f88d344..55c230b1 100644 --- a/recipes/incoming-gnome/adwaita-icon-theme.toml +++ b/recipes/incoming-gnome/adwaita-icon-theme.toml @@ -36,6 +36,7 @@ # simbólicos y cursores) y la más liviana en tiempo: no hay un solo compilador involucrado. name = "adwaita-icon-theme" version = "48.1" +license = "LGPL-3.0-or-later OR CC-BY-SA-3.0" [source] tarball = "https://download.gnome.org/sources/adwaita-icon-theme/48/adwaita-icon-theme-48.1.tar.xz" diff --git a/recipes/incoming-gnome/alsa-lib.toml b/recipes/incoming-gnome/alsa-lib.toml index 2a07f967..b59bda85 100644 --- a/recipes/incoming-gnome/alsa-lib.toml +++ b/recipes/incoming-gnome/alsa-lib.toml @@ -5,6 +5,7 @@ # --disable-python: los bindings pyalsa exigen headers de python + no hacen falta. Sin deps externas. name = "alsa-lib" version = "1.2.14" +license = "LGPL-2.1-or-later" [source] tarball = "https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.14.tar.bz2" diff --git a/recipes/incoming-gnome/at-spi2-core.toml b/recipes/incoming-gnome/at-spi2-core.toml index a58f838d..76bf446d 100644 --- a/recipes/incoming-gnome/at-spi2-core.toml +++ b/recipes/incoming-gnome/at-spi2-core.toml @@ -15,6 +15,7 @@ # ISLA DINÁMICA: produce .so con GObject ⇒ glib dinámica, un solo registro de GType. name = "at-spi2-core" version = "2.58.7" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/at-spi2-core/2.58/at-spi2-core-2.58.7.tar.xz" diff --git a/recipes/incoming-gnome/cairo-shared.toml b/recipes/incoming-gnome/cairo-shared.toml index 962a0798..e18a4735 100644 --- a/recipes/incoming-gnome/cairo-shared.toml +++ b/recipes/incoming-gnome/cairo-shared.toml @@ -11,6 +11,7 @@ # estado). expat canónico (--with-pic ⇒ se embebe). Ver [[gnome-introspection-dinamica]]. name = "cairo-shared" version = "1.18.4" +license = "LGPL-2.1-only OR MPL-1.1" # Release ESTABLE de cairographics.org (hash fijo). El canónico usa el archive de GitLab, que NO es # determinista (recomprime al vuelo: cada fetch da otro sha256 ⇒ imposible de pinnear). El release diff --git a/recipes/incoming-gnome/colord.toml b/recipes/incoming-gnome/colord.toml index 552ead63..4c406b9c 100644 --- a/recipes/incoming-gnome/colord.toml +++ b/recipes/incoming-gnome/colord.toml @@ -38,6 +38,7 @@ # introspection=false: mutter la enlaza en C. name = "colord" version = "1.4.7" +license = "GPL-2.0-or-later AND LGPL-2.1-or-later" [source] tarball = "https://www.freedesktop.org/software/colord/releases/colord-1.4.7.tar.xz" diff --git a/recipes/incoming-gnome/fontconfig-shared.toml b/recipes/incoming-gnome/fontconfig-shared.toml index 2d0cbcd9..fb94611f 100644 --- a/recipes/incoming-gnome/fontconfig-shared.toml +++ b/recipes/incoming-gnome/fontconfig-shared.toml @@ -7,6 +7,7 @@ # libpng.pc → zlib); sin ellos pkg-config no resuelve freetype2 y ./configure aborta (gotcha .pc transitivo). name = "fontconfig-shared" version = "2.18.1" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/2.18.1/fontconfig-2.18.1.tar.xz" diff --git a/recipes/incoming-gnome/freetype-shared.toml b/recipes/incoming-gnome/freetype-shared.toml index 8643116d..dbde8863 100644 --- a/recipes/incoming-gnome/freetype-shared.toml +++ b/recipes/incoming-gnome/freetype-shared.toml @@ -11,6 +11,7 @@ # no hay brotli sellado (sólo afecta fuentes WOFF2). zlib/png dinámicos vía las variantes -shared. name = "freetype-shared" version = "2.14.3" +license = "FTL OR GPL-2.0-or-later" [source] tarball = "https://download.savannah.gnu.org/releases/freetype/freetype-2.14.3.tar.xz" diff --git a/recipes/incoming-gnome/gdk-pixbuf.toml b/recipes/incoming-gnome/gdk-pixbuf.toml index 3c9f4480..124671a2 100644 --- a/recipes/incoming-gnome/gdk-pixbuf.toml +++ b/recipes/incoming-gnome/gdk-pixbuf.toml @@ -6,6 +6,7 @@ # Mantengo el resto de flags de la corpus (leaf PNG-only, -Dgio_sniffing=false esquiva shared-mime-info). name = "gdk-pixbuf" version = "2.44.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gdk-pixbuf/2.44/gdk-pixbuf-2.44.6.tar.xz" diff --git a/recipes/incoming-gnome/geoclue.toml b/recipes/incoming-gnome/geoclue.toml index 989ee6cb..09849fb1 100644 --- a/recipes/incoming-gnome/geoclue.toml +++ b/recipes/incoming-gnome/geoclue.toml @@ -24,6 +24,7 @@ # FUENTE: archivo de gitlab.freedesktop.org, como cairo/libdrm/libinput/pixman/modemmanager. name = "geoclue" version = "2.8.2" +license = "GPL-2.0-or-later" [source] tarball = "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/2.8.2/geoclue-2.8.2.tar.gz" diff --git a/recipes/incoming-gnome/glib.toml b/recipes/incoming-gnome/glib.toml index f300b261..dfff09b4 100644 --- a/recipes/incoming-gnome/glib.toml +++ b/recipes/incoming-gnome/glib.toml @@ -21,6 +21,7 @@ # el consumidor estático encuentra el `.a` y el scanner encuentra el `.so`. name = "glib" version = "2.88.1" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz" diff --git a/recipes/incoming-gnome/gnome-desktop.toml b/recipes/incoming-gnome/gnome-desktop.toml index 3a077068..91ac77d4 100644 --- a/recipes/incoming-gnome/gnome-desktop.toml +++ b/recipes/incoming-gnome/gnome-desktop.toml @@ -36,6 +36,7 @@ # borrarlos de `sources:` es justo lo que impediría que se declaren. name = "gnome-desktop" version = "44.5" +license = "GPL-2.0-or-later AND LGPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gnome-desktop/44/gnome-desktop-44.5.tar.xz" diff --git a/recipes/incoming-gnome/gnome-session.toml b/recipes/incoming-gnome/gnome-session.toml index 5f57e246..6a0c06be 100644 --- a/recipes/incoming-gnome/gnome-session.toml +++ b/recipes/incoming-gnome/gnome-session.toml @@ -7,6 +7,7 @@ # gnome-session usa gtk4 para el diálogo de fallo ("failwhale") y json-glib para el perfil de sesión. name = "gnome-session" version = "48.0" +license = "GPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gnome-session/48/gnome-session-48.0.tar.xz" diff --git a/recipes/incoming-gnome/gnome-shell.toml b/recipes/incoming-gnome/gnome-shell.toml index d8f348d6..1d9d69d3 100644 --- a/recipes/incoming-gnome/gnome-shell.toml +++ b/recipes/incoming-gnome/gnome-shell.toml @@ -55,6 +55,7 @@ # con `relocation R_X86_64_32 ... recompile with -fPIC` — es el muro que ya frenó a mutter. name = "gnome-shell" version = "48.8" +license = "GPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gnome-shell/48/gnome-shell-48.8.tar.xz" diff --git a/recipes/incoming-gnome/gobject-introspection.toml b/recipes/incoming-gnome/gobject-introspection.toml index 1de8dfbe..4f2a091c 100644 --- a/recipes/incoming-gnome/gobject-introspection.toml +++ b/recipes/incoming-gnome/gobject-introspection.toml @@ -14,6 +14,7 @@ # la primera — dejar como frontera medida, no como sellado asumido. name = "gobject-introspection" version = "1.84.0" +license = "LGPL-2.0-or-later AND GPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz" diff --git a/recipes/incoming-gnome/graphene.toml b/recipes/incoming-gnome/graphene.toml index 0fd8e350..6dc6cc3d 100644 --- a/recipes/incoming-gnome/graphene.toml +++ b/recipes/incoming-gnome/graphene.toml @@ -9,6 +9,7 @@ # con la estática. name = "graphene" version = "1.10.8" +license = "MIT" [source] tarball = "https://download.gnome.org/sources/graphene/1.10/graphene-1.10.8.tar.xz" diff --git a/recipes/incoming-gnome/gsettings-desktop-schemas.toml b/recipes/incoming-gnome/gsettings-desktop-schemas.toml index bad0f4c8..fc52c71d 100644 --- a/recipes/incoming-gnome/gsettings-desktop-schemas.toml +++ b/recipes/incoming-gnome/gsettings-desktop-schemas.toml @@ -9,6 +9,7 @@ # reconstruir (gnome-desktop). Sin docs/tests. name = "gsettings-desktop-schemas" version = "48.0" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gsettings-desktop-schemas/48/gsettings-desktop-schemas-48.0.tar.xz" diff --git a/recipes/incoming-gnome/gtk4.toml b/recipes/incoming-gnome/gtk4.toml index 3c4e1046..98c95100 100644 --- a/recipes/incoming-gnome/gtk4.toml +++ b/recipes/incoming-gnome/gtk4.toml @@ -15,6 +15,7 @@ # símbolo/estado duplicado, escalar la lib culpable a su propia isla. Esperar walls en el worker. name = "gtk4" version = "4.18.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/gtk/4.18/gtk-4.18.6.tar.xz" diff --git a/recipes/incoming-gnome/harfbuzz.toml b/recipes/incoming-gnome/harfbuzz.toml index 2e6552c5..039bb6e6 100644 --- a/recipes/incoming-gnome/harfbuzz.toml +++ b/recipes/incoming-gnome/harfbuzz.toml @@ -8,6 +8,7 @@ # coherente). Sombrea el corpus SÓLO para la cola GNOME. name = "harfbuzz" version = "14.2.1" +license = "MIT" [source] tarball = "https://github.com/harfbuzz/harfbuzz/releases/download/14.2.1/harfbuzz-14.2.1.tar.xz" diff --git a/recipes/incoming-gnome/iso-codes.toml b/recipes/incoming-gnome/iso-codes.toml index 9a0d5506..469b6672 100644 --- a/recipes/incoming-gnome/iso-codes.toml +++ b/recipes/incoming-gnome/iso-codes.toml @@ -17,6 +17,7 @@ # corpus, se borra el `for` del configure y vuelven los .mo. name = "iso-codes" version = "4.20.1" +license = "LGPL-2.1-or-later" [source] tarball = "http://deb.debian.org/debian/pool/main/i/iso-codes/iso-codes_4.20.1.orig.tar.xz" diff --git a/recipes/incoming-gnome/json-glib.toml b/recipes/incoming-gnome/json-glib.toml index a8d6596d..725a8cd9 100644 --- a/recipes/incoming-gnome/json-glib.toml +++ b/recipes/incoming-gnome/json-glib.toml @@ -24,6 +24,7 @@ # destrabar mutter. Ver [[gnome-introspection-dinamica]]. name = "json-glib" version = "1.10.8" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/json-glib/1.10/json-glib-1.10.8.tar.xz" diff --git a/recipes/incoming-gnome/libadwaita.toml b/recipes/incoming-gnome/libadwaita.toml index e49e6ff1..39a03ff2 100644 --- a/recipes/incoming-gnome/libadwaita.toml +++ b/recipes/incoming-gnome/libadwaita.toml @@ -31,6 +31,7 @@ # Control: libepoxy=0 (embebe bien) · fontconfig=1122 (rompe el link). Ver [[gnome-introspection-dinamica]]. name = "libadwaita" version = "1.7.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/libadwaita/1.7/libadwaita-1.7.6.tar.xz" diff --git a/recipes/incoming-gnome/libjpeg-turbo-shared.toml b/recipes/incoming-gnome/libjpeg-turbo-shared.toml index 44f74cee..e3dc03a6 100644 --- a/recipes/incoming-gnome/libjpeg-turbo-shared.toml +++ b/recipes/incoming-gnome/libjpeg-turbo-shared.toml @@ -4,6 +4,7 @@ # zlib-shared/bzip2-shared. Nombre distinto para no colisionar con el canónico. gwenview lo linkea. name = "libjpeg-turbo-shared" version = "3.1.3" +license = "IJG AND BSD-3-Clause AND Zlib" [source] tarball = "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.3/libjpeg-turbo-3.1.3.tar.gz" diff --git a/recipes/incoming-gnome/libpng-shared.toml b/recipes/incoming-gnome/libpng-shared.toml index cb9c9ad0..ec37536d 100644 --- a/recipes/incoming-gnome/libpng-shared.toml +++ b/recipes/incoming-gnome/libpng-shared.toml @@ -3,6 +3,7 @@ # zlib-shared/xz-shared: autotools --enable-shared, zig-cc, contra zlib-shared (libz.so). gwenview linkea. name = "libpng-shared" version = "1.6.58" +license = "Libpng" [source] tarball = "https://downloads.sourceforge.net/libpng/libpng-1.6.58.tar.gz" diff --git a/recipes/incoming-gnome/libseccomp.toml b/recipes/incoming-gnome/libseccomp.toml index 9c2c8237..d7a7c39a 100644 --- a/recipes/incoming-gnome/libseccomp.toml +++ b/recipes/incoming-gnome/libseccomp.toml @@ -7,6 +7,7 @@ # --disable-python: los bindings piden cython3; el escritorio consume la lib C, no el módulo. name = "libseccomp" version = "2.6.1" +license = "LGPL-2.1-only" [source] tarball = "https://github.com/seccomp/libseccomp/releases/download/v2.6.1/libseccomp-2.6.1.tar.gz" diff --git a/recipes/incoming-gnome/libsoup.toml b/recipes/incoming-gnome/libsoup.toml index 812f826f..9e7220cc 100644 --- a/recipes/incoming-gnome/libsoup.toml +++ b/recipes/incoming-gnome/libsoup.toml @@ -29,6 +29,7 @@ # son PIC y no entran en un .so (es el muro que frenó a mutter contra freetype). name = "libsoup" version = "3.6.6" +license = "LGPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/libsoup/3.6/libsoup-3.6.6.tar.xz" diff --git a/recipes/incoming-gnome/libtiff-shared.toml b/recipes/incoming-gnome/libtiff-shared.toml index 1c723b4f..6e84552e 100644 --- a/recipes/incoming-gnome/libtiff-shared.toml +++ b/recipes/incoming-gnome/libtiff-shared.toml @@ -4,6 +4,7 @@ # resuelve ('undefined inflate'). La .so lo resuelve por NEEDED. Ver [[gnome-introspection-dinamica]]. name = "libtiff-shared" version = "4.7.0" +license = "libtiff" [source] tarball = "https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz" diff --git a/recipes/incoming-gnome/libxml2-shared.toml b/recipes/incoming-gnome/libxml2-shared.toml index 1d8d7675..302aa9fa 100644 --- a/recipes/incoming-gnome/libxml2-shared.toml +++ b/recipes/incoming-gnome/libxml2-shared.toml @@ -13,6 +13,7 @@ # Se mantienen --without-{python,lzma,zlib} de la canónica: eds parsea XML, no comprime. name = "libxml2-shared" version = "2.13.9" +license = "MIT" [source] tarball = "https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.9.tar.xz" diff --git a/recipes/incoming-gnome/libyaml-shared.toml b/recipes/incoming-gnome/libyaml-shared.toml index 5dae804d..c6cbd1a7 100644 --- a/recipes/incoming-gnome/libyaml-shared.toml +++ b/recipes/incoming-gnome/libyaml-shared.toml @@ -17,6 +17,7 @@ # Mismo tarball y misma versión que la canónica: no se abre skew entre el mundo estático y el dinámico. name = "libyaml-shared" version = "0.2.5" +license = "MIT" [source] tarball = "https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz" diff --git a/recipes/incoming-gnome/mutter.toml b/recipes/incoming-gnome/mutter.toml index 3c22ccdd..16ed22e8 100644 --- a/recipes/incoming-gnome/mutter.toml +++ b/recipes/incoming-gnome/mutter.toml @@ -6,6 +6,7 @@ # Feature-minimal: tests/docs/profiler off. El backend nativo (KMS/DRM+libinput) es el de la distro. name = "mutter" version = "48.8" +license = "GPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/mutter/48/mutter-48.8.tar.xz" diff --git a/recipes/incoming-gnome/pango.toml b/recipes/incoming-gnome/pango.toml index 9a80bbcb..da518662 100644 --- a/recipes/incoming-gnome/pango.toml +++ b/recipes/incoming-gnome/pango.toml @@ -11,6 +11,7 @@ # escala cairo/etc. a su propia isla dinámica. NO persigo el cierre dinámico transitivo completo a ciegas. name = "pango" version = "1.57.1" +license = "LGPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/pango/1.57/pango-1.57.1.tar.xz" diff --git a/recipes/incoming-gnome/pipewire.toml b/recipes/incoming-gnome/pipewire.toml index a66666ef..a25926be 100644 --- a/recipes/incoming-gnome/pipewire.toml +++ b/recipes/incoming-gnome/pipewire.toml @@ -54,6 +54,7 @@ # Quitando la dep, meson saltea pw-top y el resto construye. name = "pipewire" version = "1.2.7" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/1.2.7/pipewire-1.2.7.tar.gz" diff --git a/recipes/incoming-gnome/wireplumber.toml b/recipes/incoming-gnome/wireplumber.toml index fdb92faf..77616609 100644 --- a/recipes/incoming-gnome/wireplumber.toml +++ b/recipes/incoming-gnome/wireplumber.toml @@ -43,6 +43,7 @@ # el protocolo de PulseAudio, no con wireplumber por GObject. name = "wireplumber" version = "0.5.15" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/0.5.15/wireplumber-0.5.15.tar.gz" diff --git a/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml b/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml index 6c96f2f8..9c89bc2b 100644 --- a/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml +++ b/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml @@ -5,6 +5,7 @@ # Feature-minimal: docs/tests off. GTK4 + libadwaita para la UI de los diálogos. Wayland-only. name = "xdg-desktop-portal-gnome" version = "48.0" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/xdg-desktop-portal-gnome/48/xdg-desktop-portal-gnome-48.0.tar.xz" diff --git a/recipes/incoming-gnome/xdg-desktop-portal.toml b/recipes/incoming-gnome/xdg-desktop-portal.toml index a69641a7..afc2a3c9 100644 --- a/recipes/incoming-gnome/xdg-desktop-portal.toml +++ b/recipes/incoming-gnome/xdg-desktop-portal.toml @@ -56,6 +56,7 @@ # `docbook-docs`/`pytest` — documentación y tests. name = "xdg-desktop-portal" version = "1.19.4" +license = "LGPL-2.1-or-later" [source] tarball = "https://github.com/flatpak/xdg-desktop-portal/releases/download/1.19.4/xdg-desktop-portal-1.19.4.tar.xz" diff --git a/recipes/incoming-gnome/xkeyboard-config.toml b/recipes/incoming-gnome/xkeyboard-config.toml index efc3c2f0..ea61893c 100644 --- a/recipes/incoming-gnome/xkeyboard-config.toml +++ b/recipes/incoming-gnome/xkeyboard-config.toml @@ -4,6 +4,7 @@ # Meson, sin compilación real (instala datos + .pc). nls off (evita gettext); sin libxml2 (validación). name = "xkeyboard-config" version = "2.44" +license = "MIT" [source] tarball = "https://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.44.tar.xz" diff --git a/recipes/incoming-gnome/zlib-shared.toml b/recipes/incoming-gnome/zlib-shared.toml index 35b0de5c..e4d9acdc 100644 --- a/recipes/incoming-gnome/zlib-shared.toml +++ b/recipes/incoming-gnome/zlib-shared.toml @@ -17,6 +17,7 @@ name = "zlib-shared" version = "1.3.1" +license = "Zlib" [source] tarball = "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" diff --git a/recipes/incoming-kde/alsa-lib.toml b/recipes/incoming-kde/alsa-lib.toml index 2a07f967..b59bda85 100644 --- a/recipes/incoming-kde/alsa-lib.toml +++ b/recipes/incoming-kde/alsa-lib.toml @@ -5,6 +5,7 @@ # --disable-python: los bindings pyalsa exigen headers de python + no hacen falta. Sin deps externas. name = "alsa-lib" version = "1.2.14" +license = "LGPL-2.1-or-later" [source] tarball = "https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.14.tar.bz2" diff --git a/recipes/incoming-kde/ark.toml b/recipes/incoming-kde/ark.toml index bad5575b..e78a9113 100644 --- a/recipes/incoming-kde/ark.toml +++ b/recipes/incoming-kde/ark.toml @@ -4,6 +4,7 @@ # cmake instalado. KF6DocTools se degrada a opcional (evita docbook). name = "ark" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/ark-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/attica.toml b/recipes/incoming-kde/attica.toml index 3b1de193..82bf3a0e 100644 --- a/recipes/incoming-kde/attica.toml +++ b/recipes/incoming-kde/attica.toml @@ -4,6 +4,7 @@ # CMakeLists: solo Qt6 Core+Network. NO tiene option(WITH_X11). name = "attica" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/attica-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/breeze-icons.toml b/recipes/incoming-kde/breeze-icons.toml index 3420cde8..ecc476f3 100644 --- a/recipes/incoming-kde/breeze-icons.toml +++ b/recipes/incoming-kde/breeze-icons.toml @@ -2,6 +2,7 @@ # not found" y el escritorio se ve sin iconos. CMake/ECM; SKIP_SANDBOX + iconos SVG (no rasteriza). name = "breeze-icons" version = "6.27.0" +license = "LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/breeze-icons-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/breeze.toml b/recipes/incoming-kde/breeze.toml index 411b62e6..85621f71 100644 --- a/recipes/incoming-kde/breeze.toml +++ b/recipes/incoming-kde/breeze.toml @@ -3,6 +3,7 @@ # (dynamic, wrapper zig). Wayland-puro: sin dep X11-session pesada. -DWITH_WALLPAPERS=OFF (opcional, pesado). name = "breeze" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/breeze-6.7.2.tar.xz" sha256 = "80818bf6382a96e1a45c755f983d98357c4f7163f80cb8217897df15f8a02785" diff --git a/recipes/incoming-kde/bzip2-shared.toml b/recipes/incoming-kde/bzip2-shared.toml index 78b26aab..0b2bff3f 100644 --- a/recipes/incoming-kde/bzip2-shared.toml +++ b/recipes/incoming-kde/bzip2-shared.toml @@ -6,6 +6,7 @@ # tarball (ya trae -fpic -fPIC, soname libbz2.so.1.0). Nombre distinto para no colisionar con el canónico. name = "bzip2-shared" version = "1.0.8" +license = "bzip2-1.0.6" [source] tarball = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" diff --git a/recipes/incoming-kde/dolphin.toml b/recipes/incoming-kde/dolphin.toml index dc8c0334..fce56ab9 100644 --- a/recipes/incoming-kde/dolphin.toml +++ b/recipes/incoming-kde/dolphin.toml @@ -2,6 +2,7 @@ # Patrón KF6 app. baloo (búsqueda de archivos → lmdb) queda opcional/ausente (degrada sin search). name = "dolphin" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/dolphin-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/fontconfig-shared.toml b/recipes/incoming-kde/fontconfig-shared.toml index 2d0cbcd9..fb94611f 100644 --- a/recipes/incoming-kde/fontconfig-shared.toml +++ b/recipes/incoming-kde/fontconfig-shared.toml @@ -7,6 +7,7 @@ # libpng.pc → zlib); sin ellos pkg-config no resuelve freetype2 y ./configure aborta (gotcha .pc transitivo). name = "fontconfig-shared" version = "2.18.1" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/2.18.1/fontconfig-2.18.1.tar.xz" diff --git a/recipes/incoming-kde/freetype-shared.toml b/recipes/incoming-kde/freetype-shared.toml index 8643116d..dbde8863 100644 --- a/recipes/incoming-kde/freetype-shared.toml +++ b/recipes/incoming-kde/freetype-shared.toml @@ -11,6 +11,7 @@ # no hay brotli sellado (sólo afecta fuentes WOFF2). zlib/png dinámicos vía las variantes -shared. name = "freetype-shared" version = "2.14.3" +license = "FTL OR GPL-2.0-or-later" [source] tarball = "https://download.savannah.gnu.org/releases/freetype/freetype-2.14.3.tar.xz" diff --git a/recipes/incoming-kde/kactivitymanagerd.toml b/recipes/incoming-kde/kactivitymanagerd.toml index 815c7a2e..6119c615 100644 --- a/recipes/incoming-kde/kactivitymanagerd.toml +++ b/recipes/incoming-kde/kactivitymanagerd.toml @@ -3,6 +3,7 @@ # zig, ECM). Usa Qt6Sql (DB de actividades sqlite) + PlasmaActivities + KIO. name = "kactivitymanagerd" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kactivitymanagerd-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/karchive.toml b/recipes/incoming-kde/karchive.toml index b06f12d4..5e091567 100644 --- a/recipes/incoming-kde/karchive.toml +++ b/recipes/incoming-kde/karchive.toml @@ -2,6 +2,7 @@ # -Wl,--fatal-warnings (ECM lo agrega, zig lo rechaza), CMAKE_PREFIX_PATH=/usr, ECM + qttools + dbus. name = "karchive" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/karchive-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kate.toml b/recipes/incoming-kde/kate.toml index 447403ce..59978969 100644 --- a/recipes/incoming-kde/kate.toml +++ b/recipes/incoming-kde/kate.toml @@ -2,6 +2,7 @@ # Patrón KF6 app + ktexteditor. musl-fts por si usa fts. DocTools/doc opcionales. name = "kate" version = "25.04.3" +license = "LGPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/kate-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/kauth.toml b/recipes/incoming-kde/kauth.toml index 41519603..4ccef39c 100644 --- a/recipes/incoming-kde/kauth.toml +++ b/recipes/incoming-kde/kauth.toml @@ -5,6 +5,7 @@ # sin él cae al backend "fake"/dummy (no bloquea). No usa ki18n. name = "kauth" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kauth-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kbookmarks.toml b/recipes/incoming-kde/kbookmarks.toml index 69647827..381acdfc 100644 --- a/recipes/incoming-kde/kbookmarks.toml +++ b/recipes/incoming-kde/kbookmarks.toml @@ -3,6 +3,7 @@ # Qt6 Widgets+Xml. Deps KF6 (del CMakeLists): kconfig, kcoreaddons, kwidgetsaddons. Sin ki18n, sin QML, sin X11. name = "kbookmarks" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kbookmarks-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kcalc.toml b/recipes/incoming-kde/kcalc.toml index dd4b3b09..0e696c02 100644 --- a/recipes/incoming-kde/kcalc.toml +++ b/recipes/incoming-kde/kcalc.toml @@ -5,6 +5,7 @@ # (cmake/modules/FindMPC.cmake) localiza mpc.h/libmpc en /usr (deps materializadas). name = "kcalc" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/kcalc-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/kcharselect.toml b/recipes/incoming-kde/kcharselect.toml index b48a8441..e67b4bdf 100644 --- a/recipes/incoming-kde/kcharselect.toml +++ b/recipes/incoming-kde/kcharselect.toml @@ -3,6 +3,7 @@ # KF6DocTools se degrada (sin docbook) + se borra la macro kdoctools_install (queda indefinida sin él). name = "kcharselect" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/kcharselect-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/kcmutils.toml b/recipes/incoming-kde/kcmutils.toml index 71197481..43031c28 100644 --- a/recipes/incoming-kde/kcmutils.toml +++ b/recipes/incoming-kde/kcmutils.toml @@ -5,6 +5,7 @@ # (verificado en todo el árbol). Sin option(WITH_X11). KIO arrastra el CIERRE tier-1..3 entero. name = "kcmutils" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kcmutils-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kcodecs.toml b/recipes/incoming-kde/kcodecs.toml index d3ef5ba5..5c3a578e 100644 --- a/recipes/incoming-kde/kcodecs.toml +++ b/recipes/incoming-kde/kcodecs.toml @@ -2,6 +2,7 @@ # -Wl,--fatal-warnings (ECM lo agrega, zig lo rechaza), CMAKE_PREFIX_PATH=/usr, ECM + qttools + dbus. name = "kcodecs" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kcodecs-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kcolorscheme.toml b/recipes/incoming-kde/kcolorscheme.toml index bedb6df3..4f1a5b78 100644 --- a/recipes/incoming-kde/kcolorscheme.toml +++ b/recipes/incoming-kde/kcolorscheme.toml @@ -3,6 +3,7 @@ # Qt6Gui/Qml ⇒ qtdeclarative. Deps KF6: kconfig, kguiaddons, kcoreaddons, ki18n. name = "kcolorscheme" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kcolorscheme-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kcompletion.toml b/recipes/incoming-kde/kcompletion.toml index 5856a45a..8c8b1532 100644 --- a/recipes/incoming-kde/kcompletion.toml +++ b/recipes/incoming-kde/kcompletion.toml @@ -3,6 +3,7 @@ # Qt6Widgets. Deps KF6: kconfig, kwidgetsaddons, kcoreaddons, kcodecs. DESIGNERPLUGIN OFF. name = "kcompletion" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kcompletion-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kconfig.toml b/recipes/incoming-kde/kconfig.toml index 8514b8c3..3495cb13 100644 --- a/recipes/incoming-kde/kconfig.toml +++ b/recipes/incoming-kde/kconfig.toml @@ -2,6 +2,7 @@ # -Wl,--fatal-warnings (ECM lo agrega, zig lo rechaza), CMAKE_PREFIX_PATH=/usr, ECM + qttools + dbus. name = "kconfig" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kconfig-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kconfigwidgets.toml b/recipes/incoming-kde/kconfigwidgets.toml index ad57d5e6..2984fe27 100644 --- a/recipes/incoming-kde/kconfigwidgets.toml +++ b/recipes/incoming-kde/kconfigwidgets.toml @@ -4,6 +4,7 @@ # DESIGNERPLUGIN OFF. name = "kconfigwidgets" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kconfigwidgets-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kcoreaddons.toml b/recipes/incoming-kde/kcoreaddons.toml index f54d6595..9141c755 100644 --- a/recipes/incoming-kde/kcoreaddons.toml +++ b/recipes/incoming-kde/kcoreaddons.toml @@ -4,6 +4,7 @@ # docs apagados. Core-only ⇒ sin el set Gui (mesa/xkb/wayland). name = "kcoreaddons" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kcoreaddons-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kcrash.toml b/recipes/incoming-kde/kcrash.toml index b058f0c0..f029808a 100644 --- a/recipes/incoming-kde/kcrash.toml +++ b/recipes/incoming-kde/kcrash.toml @@ -4,6 +4,7 @@ # en el gate, deuda Capa 0). Plasma es Wayland-first ⇒ kcrash funciona sin la integración X11. name = "kcrash" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kcrash-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kdbusaddons.toml b/recipes/incoming-kde/kdbusaddons.toml index dead8a92..6ebcd02d 100644 --- a/recipes/incoming-kde/kdbusaddons.toml +++ b/recipes/incoming-kde/kdbusaddons.toml @@ -3,6 +3,7 @@ # Sólo Qt6DBus (viene en qtbase); sin frameworks KF6 extra. name = "kdbusaddons" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kdbusaddons-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kdeclarative.toml b/recipes/incoming-kde/kdeclarative.toml index 6f4864d1..269b3e6b 100644 --- a/recipes/incoming-kde/kdeclarative.toml +++ b/recipes/incoming-kde/kdeclarative.toml @@ -10,6 +10,7 @@ # Sin option(WITH_X11); sin código X11 → sin -DWITH_X11=OFF. name = "kdeclarative" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kdeclarative-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kdecoration.toml b/recipes/incoming-kde/kdecoration.toml index 00521f97..3abad69c 100644 --- a/recipes/incoming-kde/kdecoration.toml +++ b/recipes/incoming-kde/kdecoration.toml @@ -4,6 +4,7 @@ # NO expone option(WITH_X11) ni toca X11 → NO lleva -DWITH_X11=OFF. name = "kdecoration" version = "6.7.2" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kdecoration-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kded.toml b/recipes/incoming-kde/kded.toml index 1de3c303..f031f5b3 100644 --- a/recipes/incoming-kde/kded.toml +++ b/recipes/incoming-kde/kded.toml @@ -4,6 +4,7 @@ # rm -rf po (traducciones; gettext-tiny minimal). name = "kded" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kded-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kdf.toml b/recipes/incoming-kde/kdf.toml index 969032cb..7ae983cb 100644 --- a/recipes/incoming-kde/kdf.toml +++ b/recipes/incoming-kde/kdf.toml @@ -3,6 +3,7 @@ # KF6DocTools se degrada (sin docbook) + se borra la macro kdoctools_install (queda indefinida sin él). name = "kdf" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/kdf-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/kdnssd.toml b/recipes/incoming-kde/kdnssd.toml index b7b95eb1..7d3a5318 100644 --- a/recipes/incoming-kde/kdnssd.toml +++ b/recipes/incoming-kde/kdnssd.toml @@ -7,6 +7,7 @@ # Sin option(WITH_X11); sin código X11 → sin -DWITH_X11=OFF. name = "kdnssd" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kdnssd-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kfilemetadata.toml b/recipes/incoming-kde/kfilemetadata.toml index 81e8b721..bab3fff7 100644 --- a/recipes/incoming-kde/kfilemetadata.toml +++ b/recipes/incoming-kde/kfilemetadata.toml @@ -13,6 +13,7 @@ # Sin option(WITH_X11); sin código X11 → sin -DWITH_X11=OFF. name = "kfilemetadata" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kfilemetadata-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kfind.toml b/recipes/incoming-kde/kfind.toml index da9aebae..60874cfa 100644 --- a/recipes/incoming-kde/kfind.toml +++ b/recipes/incoming-kde/kfind.toml @@ -3,6 +3,7 @@ # KF6DocTools se degrada (sin docbook) + se borra la macro kdoctools_install (queda indefinida sin él). name = "kfind" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/kfind-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/kglobalaccel.toml b/recipes/incoming-kde/kglobalaccel.toml index ab4dc88b..708760b9 100644 --- a/recipes/incoming-kde/kglobalaccel.toml +++ b/recipes/incoming-kde/kglobalaccel.toml @@ -4,6 +4,7 @@ # TIENE código X11 tras option(WITH_X11 ON): Qt está SIN xcb → -DWITH_X11=OFF OBLIGATORIO. name = "kglobalaccel" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kglobalaccel-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kglobalacceld.toml b/recipes/incoming-kde/kglobalacceld.toml index a870ad69..8df064c4 100644 --- a/recipes/incoming-kde/kglobalacceld.toml +++ b/recipes/incoming-kde/kglobalacceld.toml @@ -6,6 +6,7 @@ # Arrastra el cierre de kio (tier-1/2/3 + kio + libgcrypt/libgpg-error/util-linux/openssl). name = "kglobalacceld" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kglobalacceld-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kguiaddons.toml b/recipes/incoming-kde/kguiaddons.toml index 6215dae5..a67a756a 100644 --- a/recipes/incoming-kde/kguiaddons.toml +++ b/recipes/incoming-kde/kguiaddons.toml @@ -2,6 +2,7 @@ # -Wl,--fatal-warnings (ECM lo agrega, zig lo rechaza), CMAKE_PREFIX_PATH=/usr, ECM + qttools + dbus. name = "kguiaddons" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kguiaddons-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kholidays.toml b/recipes/incoming-kde/kholidays.toml index 8346c9cd..28074e91 100644 --- a/recipes/incoming-kde/kholidays.toml +++ b/recipes/incoming-kde/kholidays.toml @@ -5,6 +5,7 @@ # festivos). NO usa ki18n (sólo ecm_install_po_files_as_qm vía lrelease de qttools). name = "kholidays" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kholidays-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/ki18n.toml b/recipes/incoming-kde/ki18n.toml index 41c1f648..6179176e 100644 --- a/recipes/incoming-kde/ki18n.toml +++ b/recipes/incoming-kde/ki18n.toml @@ -2,6 +2,7 @@ # -Wl,--fatal-warnings (ECM lo agrega, zig lo rechaza), CMAKE_PREFIX_PATH=/usr, ECM + qttools + dbus. name = "ki18n" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/ki18n-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kiconthemes.toml b/recipes/incoming-kde/kiconthemes.toml index 448dc6b3..d6eb2159 100644 --- a/recipes/incoming-kde/kiconthemes.toml +++ b/recipes/incoming-kde/kiconthemes.toml @@ -6,6 +6,7 @@ # lo APAGO con -DUSE_BreezeIcons=OFF (temas de iconos se resuelven en runtime, no en build). name = "kiconthemes" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kiconthemes-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kidletime.toml b/recipes/incoming-kde/kidletime.toml index 3ce25054..7a17ef80 100644 --- a/recipes/incoming-kde/kidletime.toml +++ b/recipes/incoming-kde/kidletime.toml @@ -5,6 +5,7 @@ # Wayland, PlasmaWaylandProtocols>=1.6, WaylandProtocols>=1.27, Qt6GuiPrivate, Qt6DBus. SET X11 + qtwayland. name = "kidletime" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kidletime-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kinfocenter.toml b/recipes/incoming-kde/kinfocenter.toml index abf0e83a..cbc1943f 100644 --- a/recipes/incoming-kde/kinfocenter.toml +++ b/recipes/incoming-kde/kinfocenter.toml @@ -2,6 +2,7 @@ # Patrón app/KCM-Plasma (dynamic, wrapper zig, ECM). Todas sus deps ya estaban selladas. name = "kinfocenter" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kinfocenter-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kio.toml b/recipes/incoming-kde/kio.toml index afc32583..09bd1e3c 100644 --- a/recipes/incoming-kde/kio.toml +++ b/recipes/incoming-kde/kio.toml @@ -23,6 +23,7 @@ # ON (default): la integración wayland de KIO pasa por KF6::WindowSystem (no linkea wayland-client directo). mesa set presente. name = "kio" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kio-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kirigami-addons.toml b/recipes/incoming-kde/kirigami-addons.toml index 3b890a0b..cce47c0f 100644 --- a/recipes/incoming-kde/kirigami-addons.toml +++ b/recipes/incoming-kde/kirigami-addons.toml @@ -2,6 +2,7 @@ # kickoff (lanzador) lo IMPORTA. Patrón KF6 (dynamic, wrapper zig, ECM). QML-heavy. name = "kirigami-addons" version = "1.9.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/kirigami-addons/kirigami-addons-1.9.0.tar.xz" diff --git a/recipes/incoming-kde/kirigami.toml b/recipes/incoming-kde/kirigami.toml index cfe1a738..46fb9c88 100644 --- a/recipes/incoming-kde/kirigami.toml +++ b/recipes/incoming-kde/kirigami.toml @@ -7,6 +7,7 @@ # USE_DBUS ON por defecto en Linux → Qt6DBus (qtbase). BUILD_EXAMPLES OFF por defecto. DESKTOP_ENABLED ON. name = "kirigami" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kirigami-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kitemmodels.toml b/recipes/incoming-kde/kitemmodels.toml index 724930c2..2e3d9d0e 100644 --- a/recipes/incoming-kde/kitemmodels.toml +++ b/recipes/incoming-kde/kitemmodels.toml @@ -3,6 +3,7 @@ # Qt6Core + Qt6Qml (opcional NO_MODULE, provee los tipos QML) ⇒ qtdeclarative. Sin frameworks KF6 extra. name = "kitemmodels" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kitemmodels-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kitemviews.toml b/recipes/incoming-kde/kitemviews.toml index cd27a915..90258de2 100644 --- a/recipes/incoming-kde/kitemviews.toml +++ b/recipes/incoming-kde/kitemviews.toml @@ -3,6 +3,7 @@ # Sólo Qt6Widgets; sin frameworks KF6 extra. DESIGNERPLUGIN OFF (evita dep Qt Designer). name = "kitemviews" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kitemviews-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kjobwidgets.toml b/recipes/incoming-kde/kjobwidgets.toml index ee7077ff..59cecfff 100644 --- a/recipes/incoming-kde/kjobwidgets.toml +++ b/recipes/incoming-kde/kjobwidgets.toml @@ -3,6 +3,7 @@ # Qt6Widgets/Gui. Deps KF6: kcoreaddons, kwidgetsaddons, kwindowsystem. DESIGNERPLUGIN OFF. name = "kjobwidgets" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kjobwidgets-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kmenuedit.toml b/recipes/incoming-kde/kmenuedit.toml index 020dbf27..5b4b22d3 100644 --- a/recipes/incoming-kde/kmenuedit.toml +++ b/recipes/incoming-kde/kmenuedit.toml @@ -2,6 +2,7 @@ # Patrón app/KCM-Plasma (dynamic, wrapper zig, ECM). Todas sus deps ya estaban selladas. name = "kmenuedit" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kmenuedit-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/knewstuff.toml b/recipes/incoming-kde/knewstuff.toml index 0f710207..56d61be2 100644 --- a/recipes/incoming-kde/knewstuff.toml +++ b/recipes/incoming-kde/knewstuff.toml @@ -7,6 +7,7 @@ # ki18n → gettext-tiny. kirigami arrastra qtsvg/qtshadertools. karchive → zlib/zstd/openssl. name = "knewstuff" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/knewstuff-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/knotifications.toml b/recipes/incoming-kde/knotifications.toml index b6ee379e..7fde5679 100644 --- a/recipes/incoming-kde/knotifications.toml +++ b/recipes/incoming-kde/knotifications.toml @@ -6,6 +6,7 @@ # quita el REQUIRED y compila sin audio (libcanberra = stack alsa/pulse/vorbis, deuda audio diferida). name = "knotifications" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/knotifications-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/knotifyconfig.toml b/recipes/incoming-kde/knotifyconfig.toml index 321b9e3b..c13e61d8 100644 --- a/recipes/incoming-kde/knotifyconfig.toml +++ b/recipes/incoming-kde/knotifyconfig.toml @@ -3,6 +3,7 @@ # kcoreaddons, ki18n, knotifications. name = "knotifyconfig" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/knotifyconfig-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/konsole.toml b/recipes/incoming-kde/konsole.toml index ce9628b7..9af4ce68 100644 --- a/recipes/incoming-kde/konsole.toml +++ b/recipes/incoming-kde/konsole.toml @@ -2,6 +2,7 @@ # Patrón KF6 app (dynamic, wrapper zig, ECM). Usa kpty (pseudo-terminal). name = "konsole" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/konsole-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/kpackage.toml b/recipes/incoming-kde/kpackage.toml index dfc60766..cb780501 100644 --- a/recipes/incoming-kde/kpackage.toml +++ b/recipes/incoming-kde/kpackage.toml @@ -5,6 +5,7 @@ # ki18n → gettext-tiny. qtdeclarative incluido (consumidores KF6 encadenan QML). Cierre: karchive→zlib/zstd/openssl. name = "kpackage" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kpackage-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kparts.toml b/recipes/incoming-kde/kparts.toml index 18af81a3..ce8bc12f 100644 --- a/recipes/incoming-kde/kparts.toml +++ b/recipes/incoming-kde/kparts.toml @@ -5,6 +5,7 @@ # Sin option(WITH_X11) en el árbol 6.27. ki18n → gettext-tiny. name = "kparts" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kparts-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kpipewire.toml b/recipes/incoming-kde/kpipewire.toml index c931231b..381dd03a 100644 --- a/recipes/incoming-kde/kpipewire.toml +++ b/recipes/incoming-kde/kpipewire.toml @@ -7,6 +7,7 @@ # CoreAddons. name = "kpipewire" version = "6.7.2" +license = "GPL-2.0-or-later OR LGPL-2.1-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kpipewire-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kplotting.toml b/recipes/incoming-kde/kplotting.toml index b48988da..c4cbf674 100644 --- a/recipes/incoming-kde/kplotting.toml +++ b/recipes/incoming-kde/kplotting.toml @@ -3,6 +3,7 @@ # Sólo Qt6Gui (widget de ploteo QWidget-free); sin frameworks KF6 extra. name = "kplotting" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kplotting-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kpty.toml b/recipes/incoming-kde/kpty.toml index 72540c6e..ef317b77 100644 --- a/recipes/incoming-kde/kpty.toml +++ b/recipes/incoming-kde/kpty.toml @@ -1,6 +1,7 @@ # kpty 6.27.0 — KDE Frameworks 6: interfaz a pseudo-terminales (pty). Dep de konsole. Patrón KF6. name = "kpty" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kpty-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kquickcharts.toml b/recipes/incoming-kde/kquickcharts.toml index 1d8eafa6..18550494 100644 --- a/recipes/incoming-kde/kquickcharts.toml +++ b/recipes/incoming-kde/kquickcharts.toml @@ -2,6 +2,7 @@ # IMPORTA. Patrón KF6 (dynamic, wrapper zig, ECM). Usa Qt6Quick/Qml/Gui (shaders). name = "kquickcharts" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kquickcharts-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kquickimageeditor.toml b/recipes/incoming-kde/kquickimageeditor.toml index 1b0d7887..14e1298b 100644 --- a/recipes/incoming-kde/kquickimageeditor.toml +++ b/recipes/incoming-kde/kquickimageeditor.toml @@ -7,6 +7,7 @@ # (core+imgproc, para el "stack blur" — WITH_OPENCV es TRUE por defecto en UNIX); ambas ya selladas. name = "kquickimageeditor" version = "0.6.2.1" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/kquickimageeditor/kquickimageeditor-0.6.2.1.tar.xz" diff --git a/recipes/incoming-kde/kruler.toml b/recipes/incoming-kde/kruler.toml index f6580c47..70d236bd 100644 --- a/recipes/incoming-kde/kruler.toml +++ b/recipes/incoming-kde/kruler.toml @@ -3,6 +3,7 @@ # KF6DocTools se degrada (sin docbook) + se borra la macro kdoctools_install (queda indefinida sin él). name = "kruler" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/kruler-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/krunner.toml b/recipes/incoming-kde/krunner.toml index c882b22c..bae65b8c 100644 --- a/recipes/incoming-kde/krunner.toml +++ b/recipes/incoming-kde/krunner.toml @@ -4,6 +4,7 @@ # (rule 1, inerte en prefix) y SET X11 (kwindowsystem transitivo). rm -rf po (muchas traducciones). name = "krunner" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/krunner-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kscreen.toml b/recipes/incoming-kde/kscreen.toml index b1425f2d..d35ecfbf 100644 --- a/recipes/incoming-kde/kscreen.toml +++ b/recipes/incoming-kde/kscreen.toml @@ -3,6 +3,7 @@ # LayerShellQt (layer-shell-qt), KCMUtils, Svg (ksvg). KF6ImageFormats es CONFIG opcional → se salta. name = "kscreen" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kscreen-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kscreenlocker.toml b/recipes/incoming-kde/kscreenlocker.toml index 3e3791e1..c56fa813 100644 --- a/recipes/incoming-kde/kscreenlocker.toml +++ b/recipes/incoming-kde/kscreenlocker.toml @@ -19,6 +19,7 @@ # ====================================================================== name = "kscreenlocker" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kscreenlocker-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kservice.toml b/recipes/incoming-kde/kservice.toml index 5f2ccf55..2447a0ad 100644 --- a/recipes/incoming-kde/kservice.toml +++ b/recipes/incoming-kde/kservice.toml @@ -4,6 +4,7 @@ # NOTA: KF6 6.27 NO trae parser flex/bison (no hay .l/.y ni FLEX_TARGET/BISON_TARGET): sin flex/bison. name = "kservice" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kservice-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kstatusnotifieritem.toml b/recipes/incoming-kde/kstatusnotifieritem.toml index acc6d0ad..c0db26b2 100644 --- a/recipes/incoming-kde/kstatusnotifieritem.toml +++ b/recipes/incoming-kde/kstatusnotifieritem.toml @@ -4,6 +4,7 @@ # KF6WindowSystem (REQUIRED). Sin qtdeclarative. SET X11 completo (find_package(X11) transitivo). rm -rf po. name = "kstatusnotifieritem" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kstatusnotifieritem-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/ksvg.toml b/recipes/incoming-kde/ksvg.toml index 1ac092e8..1c22c055 100644 --- a/recipes/incoming-kde/ksvg.toml +++ b/recipes/incoming-kde/ksvg.toml @@ -6,6 +6,7 @@ # GuiAddons(kguiaddons), KirigamiPlatform(kirigami). option(BUILD_TOOLS OFF) default. NO expone WITH_X11. name = "ksvg" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/ksvg-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/ktexteditor.toml b/recipes/incoming-kde/ktexteditor.toml index 0421ce35..0bbbbfdf 100644 --- a/recipes/incoming-kde/ktexteditor.toml +++ b/recipes/incoming-kde/ktexteditor.toml @@ -15,6 +15,7 @@ # Qt: Core Widgets Qml PrintSupport. WITH: rm -rf po. NO construye hasta sellar (1) y (2). name = "ktexteditor" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/ktexteditor-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/ktextwidgets.toml b/recipes/incoming-kde/ktextwidgets.toml index 4a4e2f81..07c62b61 100644 --- a/recipes/incoming-kde/ktextwidgets.toml +++ b/recipes/incoming-kde/ktextwidgets.toml @@ -4,6 +4,7 @@ # WITH_TEXT_TO_SPEECH=ON por defecto → exigiría Qt6TextToSpeech (qtspeech, NO sellado): lo APAGO (-DWITH_TEXT_TO_SPEECH=OFF). name = "ktextwidgets" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/ktextwidgets-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kunitconversion.toml b/recipes/incoming-kde/kunitconversion.toml index 2709717d..6d7ede8e 100644 --- a/recipes/incoming-kde/kunitconversion.toml +++ b/recipes/incoming-kde/kunitconversion.toml @@ -3,6 +3,7 @@ # Sin X11, sin qtdeclarative. rm -rf po (muchas traducciones de unidades; msgfmt de gettext-tiny minimal). name = "kunitconversion" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kunitconversion-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kwallet.toml b/recipes/incoming-kde/kwallet.toml index 8b64dfe8..761bcaf6 100644 --- a/recipes/incoming-kde/kwallet.toml +++ b/recipes/incoming-kde/kwallet.toml @@ -12,6 +12,7 @@ # daemon cuando se reactive. Gpgmepp opcional (GPG support off). Reactivar daemon = sellar libsecret+QCA. name = "kwallet" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kwallet-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kwalletmanager.toml b/recipes/incoming-kde/kwalletmanager.toml index 5ef14089..d09d2c66 100644 --- a/recipes/incoming-kde/kwalletmanager.toml +++ b/recipes/incoming-kde/kwalletmanager.toml @@ -3,6 +3,7 @@ # KF6DocTools se degrada (sin docbook) + se borra la macro kdoctools_install (queda indefinida sin él). name = "kwalletmanager" version = "25.04.3" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/release-service/25.04.3/src/kwalletmanager-25.04.3.tar.xz" diff --git a/recipes/incoming-kde/kwayland.toml b/recipes/incoming-kde/kwayland.toml index 62554d3d..bce60eb1 100644 --- a/recipes/incoming-kde/kwayland.toml +++ b/recipes/incoming-kde/kwayland.toml @@ -3,6 +3,7 @@ # Private ⇒ qtwayland (sellado) + wayland + wayland-protocols. Patrón KF6 (wrapper zig filtra --fatal-warnings). name = "kwayland" version = "6.7.2" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kwayland-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kwidgetsaddons.toml b/recipes/incoming-kde/kwidgetsaddons.toml index 63a0669e..bde8fc33 100644 --- a/recipes/incoming-kde/kwidgetsaddons.toml +++ b/recipes/incoming-kde/kwidgetsaddons.toml @@ -2,6 +2,7 @@ # -Wl,--fatal-warnings (ECM lo agrega, zig lo rechaza), CMAKE_PREFIX_PATH=/usr, ECM + qttools + dbus. name = "kwidgetsaddons" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kwidgetsaddons-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kwin.toml b/recipes/incoming-kde/kwin.toml index 0a184a3e..d6351652 100644 --- a/recipes/incoming-kde/kwin.toml +++ b/recipes/incoming-kde/kwin.toml @@ -22,6 +22,7 @@ # ======================================================================================== name = "kwin" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/kwin-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/kwindowsystem.toml b/recipes/incoming-kde/kwindowsystem.toml index e668d9a4..4c243e0d 100644 --- a/recipes/incoming-kde/kwindowsystem.toml +++ b/recipes/incoming-kde/kwindowsystem.toml @@ -9,6 +9,7 @@ # ya está en [deps].build. Rebuild en la granja (zig-skew: NO en el laptop). name = "kwindowsystem" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kwindowsystem-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/kxmlgui.toml b/recipes/incoming-kde/kxmlgui.toml index 8b905e4d..25c286a4 100644 --- a/recipes/incoming-kde/kxmlgui.toml +++ b/recipes/incoming-kde/kxmlgui.toml @@ -6,6 +6,7 @@ # NOTA: 6.27 NO expone option(WITH_X11) ni toca qtx11extras → NO lleva -DWITH_X11=OFF (verificado en el árbol). name = "kxmlgui" version = "6.27.0" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/frameworks/6.27/kxmlgui-6.27.0.tar.xz" diff --git a/recipes/incoming-kde/libarchive.toml b/recipes/incoming-kde/libarchive.toml index 7efce0a8..46764eff 100644 --- a/recipes/incoming-kde/libarchive.toml +++ b/recipes/incoming-kde/libarchive.toml @@ -7,6 +7,7 @@ # el cierre sea explícito. name = "libarchive" version = "3.7.7" +license = "BSD-2-Clause" [source] tarball = "https://github.com/libarchive/libarchive/releases/download/v3.7.7/libarchive-3.7.7.tar.xz" diff --git a/recipes/incoming-kde/libjpeg-turbo-shared.toml b/recipes/incoming-kde/libjpeg-turbo-shared.toml index 44f74cee..e3dc03a6 100644 --- a/recipes/incoming-kde/libjpeg-turbo-shared.toml +++ b/recipes/incoming-kde/libjpeg-turbo-shared.toml @@ -4,6 +4,7 @@ # zlib-shared/bzip2-shared. Nombre distinto para no colisionar con el canónico. gwenview lo linkea. name = "libjpeg-turbo-shared" version = "3.1.3" +license = "IJG AND BSD-3-Clause AND Zlib" [source] tarball = "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.3/libjpeg-turbo-3.1.3.tar.gz" diff --git a/recipes/incoming-kde/libpng-shared.toml b/recipes/incoming-kde/libpng-shared.toml index cb9c9ad0..ec37536d 100644 --- a/recipes/incoming-kde/libpng-shared.toml +++ b/recipes/incoming-kde/libpng-shared.toml @@ -3,6 +3,7 @@ # zlib-shared/xz-shared: autotools --enable-shared, zig-cc, contra zlib-shared (libz.so). gwenview linkea. name = "libpng-shared" version = "1.6.58" +license = "Libpng" [source] tarball = "https://downloads.sourceforge.net/libpng/libpng-1.6.58.tar.gz" diff --git a/recipes/incoming-kde/libtool.toml b/recipes/incoming-kde/libtool.toml index 30c91598..41b53ab6 100644 --- a/recipes/incoming-kde/libtool.toml +++ b/recipes/incoming-kde/libtool.toml @@ -2,6 +2,7 @@ # Sólo nos interesa libltdl (ltdl.h + libltdl.so + libltdl.pc); el script libtool en sí no lo usa hammer. name = "libtool" version = "2.5.4" +license = "GPL-2.0-or-later" [source] tarball = "https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.xz" sha256 = "f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675" diff --git a/recipes/incoming-kde/libxkbcommon.toml b/recipes/incoming-kde/libxkbcommon.toml index 844d1dd0..672a92b5 100644 --- a/recipes/incoming-kde/libxkbcommon.toml +++ b/recipes/incoming-kde/libxkbcommon.toml @@ -4,6 +4,7 @@ # wayland/xkbregistry/tools). En runtime usa los datos de xkeyboard-config (no dep de build). name = "libxkbcommon" version = "1.7.0" +license = "MIT" [source] tarball = "https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/xkbcommon-1.7.0.tar.gz" diff --git a/recipes/incoming-kde/libxml2.toml b/recipes/incoming-kde/libxml2.toml index 35715567..48078509 100644 --- a/recipes/incoming-kde/libxml2.toml +++ b/recipes/incoming-kde/libxml2.toml @@ -4,6 +4,7 @@ # incoming-kde (mismo name). compiler=gcc (zig miscompila). Sin python/lzma; CON zlib no (mantener mínimo). name = "libxml2" version = "2.13.9" +license = "MIT" [source] tarball = "https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.9.tar.xz" diff --git a/recipes/incoming-kde/openssl.toml b/recipes/incoming-kde/openssl.toml index 4e7b74d5..f5d4507b 100644 --- a/recipes/incoming-kde/openssl.toml +++ b/recipes/incoming-kde/openssl.toml @@ -7,6 +7,7 @@ # Patrón static↔dinámico Capa 0 (mismo que zstd/libgcrypt/util-linux-shared). name = "openssl" version = "3.5.4" +license = "Apache-2.0" [source] tarball = "https://github.com/openssl/openssl/releases/download/openssl-3.5.4/openssl-3.5.4.tar.gz" diff --git a/recipes/incoming-kde/pipewire.toml b/recipes/incoming-kde/pipewire.toml index 36b2d093..4d0c1a46 100644 --- a/recipes/incoming-kde/pipewire.toml +++ b/recipes/incoming-kde/pipewire.toml @@ -16,6 +16,7 @@ # Quitando la dep, meson saltea pw-top y el resto construye. name = "pipewire" version = "1.2.7" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/1.2.7/pipewire-1.2.7.tar.gz" diff --git a/recipes/incoming-kde/plasma-activities-stats.toml b/recipes/incoming-kde/plasma-activities-stats.toml index 55e744d3..5d21aea4 100644 --- a/recipes/incoming-kde/plasma-activities-stats.toml +++ b/recipes/incoming-kde/plasma-activities-stats.toml @@ -5,6 +5,7 @@ # Sin X11 obligatorio. Construye limpio. name = "plasma-activities-stats" version = "6.7.2" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-activities-stats-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/plasma-activities.toml b/recipes/incoming-kde/plasma-activities.toml index b582f2b8..43b818ce 100644 --- a/recipes/incoming-kde/plasma-activities.toml +++ b/recipes/incoming-kde/plasma-activities.toml @@ -6,6 +6,7 @@ # NO expone WITH_X11 ni Boost. Qml/Quick → qtdeclarative. Sql → qtbase compilado con SQL ON. name = "plasma-activities" version = "6.7.2" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-activities-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/plasma-desktop.toml b/recipes/incoming-kde/plasma-desktop.toml index 60359926..01b6b262 100644 --- a/recipes/incoming-kde/plasma-desktop.toml +++ b/recipes/incoming-kde/plasma-desktop.toml @@ -4,6 +4,7 @@ # wrapper zig filtra -Wl,--fatal-warnings, Ninja, rm -rf po, WITH_X11=OFF Wayland-puro). name = "plasma-desktop" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-desktop-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/plasma-integration.toml b/recipes/incoming-kde/plasma-integration.toml index 51ac51be..7ef1f847 100644 --- a/recipes/incoming-kde/plasma-integration.toml +++ b/recipes/incoming-kde/plasma-integration.toml @@ -2,6 +2,7 @@ # de Plasma (usa breeze + KF6 + Qt6 private). Patrón KF6 (dynamic, wrapper zig). Wayland-puro. Runtime del escritorio. name = "plasma-integration" version = "6.7.2" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-integration-6.7.2.tar.xz" sha256 = "f1ce2c3fb0e07a4e0cd5e3d5566fb67e6063aaf435e8efb3402f7d65e1da95a4" diff --git a/recipes/incoming-kde/plasma-nm.toml b/recipes/incoming-kde/plasma-nm.toml index 88ea8a0e..61512dee 100644 --- a/recipes/incoming-kde/plasma-nm.toml +++ b/recipes/incoming-kde/plasma-nm.toml @@ -12,6 +12,7 @@ # sellados. ecm_find_qmlmodule REQUIRED: org.kde.prison + org.kde.kirigamiaddons.formcard (kirigami-addons). name = "plasma-nm" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-nm-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/plasma-pa.toml b/recipes/incoming-kde/plasma-pa.toml index 00a639f3..bba0a3a1 100644 --- a/recipes/incoming-kde/plasma-pa.toml +++ b/recipes/incoming-kde/plasma-pa.toml @@ -7,6 +7,7 @@ # Kirigami/KirigamiAddons son RUNTIME. gio-2.0 REQUIRED → glib-shared. name = "plasma-pa" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-pa-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/plasma-wayland-protocols.toml b/recipes/incoming-kde/plasma-wayland-protocols.toml index 5bb2e16d..91ff3063 100644 --- a/recipes/incoming-kde/plasma-wayland-protocols.toml +++ b/recipes/incoming-kde/plasma-wayland-protocols.toml @@ -4,6 +4,7 @@ # CMake+ECM puro (sin Qt) ⇒ no necesita el set Qt-consumer, sólo ECM. name = "plasma-wayland-protocols" version = "1.21.0" +license = "MIT" [source] tarball = "https://download.kde.org/stable/plasma-wayland-protocols/plasma-wayland-protocols-1.21.0.tar.xz" diff --git a/recipes/incoming-kde/plasma-workspace.toml b/recipes/incoming-kde/plasma-workspace.toml index 6dfdaf2d..252e7d66 100644 --- a/recipes/incoming-kde/plasma-workspace.toml +++ b/recipes/incoming-kde/plasma-workspace.toml @@ -60,6 +60,7 @@ # ================================================================================================== name = "plasma-workspace" version = "6.7.2" +license = "GPL-2.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma-workspace-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/plasma5support.toml b/recipes/incoming-kde/plasma5support.toml index 05ec16aa..bb9e9288 100644 --- a/recipes/incoming-kde/plasma5support.toml +++ b/recipes/incoming-kde/plasma5support.toml @@ -16,6 +16,7 @@ # =================================================================== name = "plasma5support" version = "6.7.2" +license = "LGPL-2.1-or-later OR LGPL-3.0-or-later" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/plasma5support-6.7.2.tar.xz" diff --git a/recipes/incoming-kde/qt5compat.toml b/recipes/incoming-kde/qt5compat.toml index 15c033e9..7dba4739 100644 --- a/recipes/incoming-kde/qt5compat.toml +++ b/recipes/incoming-kde/qt5compat.toml @@ -4,6 +4,7 @@ # Necesita qtdeclarative (QML) además de qtbase. name = "qt5compat" version = "6.11.1" +license = "LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only" [source] tarball = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qt5compat-everywhere-src-6.11.1.tar.xz" diff --git a/recipes/incoming-kde/util-linux.toml b/recipes/incoming-kde/util-linux.toml index 4a4b2291..d26450f3 100644 --- a/recipes/incoming-kde/util-linux.toml +++ b/recipes/incoming-kde/util-linux.toml @@ -7,6 +7,7 @@ # sigue con la canónica static. Conserva el hack del filtro -mcpu=baseline de los generadores. name = "util-linux" version = "2.42.2" +license = "GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause" [source] tarball = "https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz" diff --git a/recipes/incoming-kde/xkeyboard-config.toml b/recipes/incoming-kde/xkeyboard-config.toml index efc3c2f0..ea61893c 100644 --- a/recipes/incoming-kde/xkeyboard-config.toml +++ b/recipes/incoming-kde/xkeyboard-config.toml @@ -4,6 +4,7 @@ # Meson, sin compilación real (instala datos + .pc). nls off (evita gettext); sin libxml2 (validación). name = "xkeyboard-config" version = "2.44" +license = "MIT" [source] tarball = "https://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.44.tar.xz" diff --git a/recipes/incoming-kde/zlib-shared.toml b/recipes/incoming-kde/zlib-shared.toml index 35b0de5c..e4d9acdc 100644 --- a/recipes/incoming-kde/zlib-shared.toml +++ b/recipes/incoming-kde/zlib-shared.toml @@ -17,6 +17,7 @@ name = "zlib-shared" version = "1.3.1" +license = "Zlib" [source] tarball = "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" diff --git a/recipes/kbd.toml b/recipes/kbd.toml index 6f4694e3..56b2b78a 100644 --- a/recipes/kbd.toml +++ b/recipes/kbd.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "kbd" version = "2.8.0" +license = "GPL-2.0-or-later" [source] tarball = "https://www.kernel.org/pub/linux/utils/kbd/kbd-2.8.0.tar.gz" diff --git a/recipes/libadwaita.toml b/recipes/libadwaita.toml index e00a4a95..f92982af 100644 --- a/recipes/libadwaita.toml +++ b/recipes/libadwaita.toml @@ -3,6 +3,7 @@ # deps = gtk4 + su cierre .pc completo + sassc. name = "libadwaita" version = "1.7.6" +license = "LGPL-2.1-or-later" [source] tarball = "https://download.gnome.org/sources/libadwaita/1.7/libadwaita-1.7.6.tar.xz" diff --git a/recipes/libarchive.toml b/recipes/libarchive.toml index d0b4b4f3..9b4758f3 100644 --- a/recipes/libarchive.toml +++ b/recipes/libarchive.toml @@ -14,6 +14,7 @@ name = "libarchive" version = "3.8.1" +license = "BSD-2-Clause" [source] tarball = "https://github.com/libarchive/libarchive/releases/download/v3.8.1/libarchive-3.8.1.tar.xz" diff --git a/recipes/libcap.toml b/recipes/libcap.toml index 672ce708..866465f6 100644 --- a/recipes/libcap.toml +++ b/recipes/libcap.toml @@ -18,6 +18,7 @@ name = "libcap" version = "2.78" +license = "BSD-3-Clause OR GPL-2.0-only" [source] tarball = "https://mirrors.edge.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.78.tar.gz" diff --git a/recipes/libdrm.toml b/recipes/libdrm.toml index 43d59c82..cb84342c 100644 --- a/recipes/libdrm.toml +++ b/recipes/libdrm.toml @@ -5,6 +5,7 @@ # los helpers intel/radeon/nouveau viejos). link=dynamic: shared lib que Mesa/mirada enlazan. name = "libdrm" version = "2.4.134" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/mesa/libdrm/-/archive/libdrm-2.4.134/libdrm-libdrm-2.4.134.tar.gz" diff --git a/recipes/libepoxy.toml b/recipes/libepoxy.toml index 7ac82f5a..5dbe46da 100644 --- a/recipes/libepoxy.toml +++ b/recipes/libepoxy.toml @@ -1,6 +1,7 @@ # libepoxy 1.5.10 — dispatch de OpenGL/EGL (GTK4/GSK). meson static, sin X11 (wayland/egl). name = "libepoxy" version = "1.5.10" +license = "MIT" [source] tarball = "https://github.com/anholt/libepoxy/archive/refs/tags/1.5.10.tar.gz" sha256 = "a7ced37f4102b745ac86d6a70a9da399cc139ff168ba6b8002b4d8d43c900c15" diff --git a/recipes/libffi.toml b/recipes/libffi.toml index c53f2603..97c59755 100644 --- a/recipes/libffi.toml +++ b/recipes/libffi.toml @@ -5,6 +5,7 @@ # es superset: sigue sirviendo para el enlace estático de exes. (2026-06-27, stack gráfico tawasuyu.) name = "libffi" version = "3.5.2" +license = "MIT" [source] tarball = "https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz" sha256 = "f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc" diff --git a/recipes/libjpeg-turbo.toml b/recipes/libjpeg-turbo.toml index 40999126..d4b22284 100644 --- a/recipes/libjpeg-turbo.toml +++ b/recipes/libjpeg-turbo.toml @@ -1,6 +1,7 @@ # libjpeg-turbo 3.1.3 — JPEG (loader de imágenes). cmake static, SIMD off (sin nasm). name = "libjpeg-turbo" version = "3.1.3" +license = "IJG AND BSD-3-Clause AND Zlib" [source] tarball = "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.3/libjpeg-turbo-3.1.3.tar.gz" sha256 = "075920b826834ac4ddf97661cc73491047855859affd671d52079c6867c1c6c0" diff --git a/recipes/libpng.toml b/recipes/libpng.toml index e5143eff..a9b695bd 100644 --- a/recipes/libpng.toml +++ b/recipes/libpng.toml @@ -2,6 +2,7 @@ # De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, contra zlib del corpus, estático. name = "libpng" version = "1.6.58" +license = "Libpng" [source] tarball = "https://downloads.sourceforge.net/libpng/libpng-1.6.58.tar.gz" sha256 = "8c9b05b675ca7301a458df2c2e46f26e1d41ff36b8863f8c33530bc58c2e6225" diff --git a/recipes/libtiff.toml b/recipes/libtiff.toml index a924bf7b..2672cff7 100644 --- a/recipes/libtiff.toml +++ b/recipes/libtiff.toml @@ -2,6 +2,7 @@ # Solo zlib+jpeg; el resto de codecs opcionales OFF (evita autodetectar .so del rootfs Alpine). name = "libtiff" version = "4.7.0" +license = "libtiff" [source] tarball = "https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz" diff --git a/recipes/libwebp.toml b/recipes/libwebp.toml index d943480f..acba85b8 100644 --- a/recipes/libwebp.toml +++ b/recipes/libwebp.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "libwebp" version = "1.6.0" +license = "BSD-3-Clause" [source] tarball = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.6.0.tar.gz" diff --git a/recipes/libxkbcommon.toml b/recipes/libxkbcommon.toml index b11906c6..f3aa8375 100644 --- a/recipes/libxkbcommon.toml +++ b/recipes/libxkbcommon.toml @@ -4,6 +4,7 @@ # (En runtime usa los datos de xkeyboard-config; no es dep de build.) name = "libxkbcommon" version = "1.7.0" +license = "MIT" [source] tarball = "https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/xkbcommon-1.7.0.tar.gz" diff --git a/recipes/libxml2.toml b/recipes/libxml2.toml index 146a6c1d..1214dff9 100644 --- a/recipes/libxml2.toml +++ b/recipes/libxml2.toml @@ -7,6 +7,7 @@ # - patches CVE de Alpine conservados (seguridad). name = "libxml2" version = "2.13.9" +license = "MIT" [source] tarball = "https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.9.tar.xz" diff --git a/recipes/libxmlb.toml b/recipes/libxmlb.toml index a4bc3be9..aee48d70 100644 --- a/recipes/libxmlb.toml +++ b/recipes/libxmlb.toml @@ -1,6 +1,7 @@ # libxmlb 0.3.22 — cache binaria de XML (appstream la exige). meson static. glib + zstd; lo opcional off. name = "libxmlb" version = "0.3.22" +license = "LGPL-2.1-or-later" [source] tarball = "https://github.com/hughsie/libxmlb/releases/download/0.3.22/libxmlb-0.3.22.tar.xz" diff --git a/recipes/libyaml.toml b/recipes/libyaml.toml index d18266cd..aa45a2ad 100644 --- a/recipes/libyaml.toml +++ b/recipes/libyaml.toml @@ -2,6 +2,7 @@ # (el repo git no trae configure). De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, estático. name = "libyaml" version = "0.2.5" +license = "MIT" [source] tarball = "https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz" sha256 = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" diff --git a/recipes/linux.toml b/recipes/linux.toml index 0216ce29..dde2ec92 100644 --- a/recipes/linux.toml +++ b/recipes/linux.toml @@ -56,6 +56,7 @@ name = "linux" version = "6.16.12" +license = "GPL-2.0-only WITH Linux-syscall-note" [source] tarball = "https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.16.12.tar.gz" diff --git a/recipes/lz4.toml b/recipes/lz4.toml index 0e334aa1..a56dbe98 100644 --- a/recipes/lz4.toml +++ b/recipes/lz4.toml @@ -1,6 +1,7 @@ # lz4 1.10.0 — compresión rápida. Makefile, static only. name = "lz4" version = "1.10.0" +license = "BSD-2-Clause AND GPL-2.0-only" [source] tarball = "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" sha256 = "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b" diff --git a/recipes/m4.toml b/recipes/m4.toml index 645be825..ad60ad7e 100644 --- a/recipes/m4.toml +++ b/recipes/m4.toml @@ -9,6 +9,7 @@ name = "m4" version = "1.4.20" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.gz" diff --git a/recipes/make.toml b/recipes/make.toml index 91dfc891..9bbef4ce 100644 --- a/recipes/make.toml +++ b/recipes/make.toml @@ -11,6 +11,7 @@ name = "make" version = "4.4.1" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz" diff --git a/recipes/mesa.toml b/recipes/mesa.toml index 20fb5bdd..92223270 100644 --- a/recipes/mesa.toml +++ b/recipes/mesa.toml @@ -56,6 +56,7 @@ # más lento). Es estrictamente mejor que no arrancar. name = "mesa" version = "24.0.9" +license = "MIT" [source] tarball = "https://archive.mesa3d.org/mesa-24.0.9.tar.xz" diff --git a/recipes/meson.toml b/recipes/meson.toml index f9b47374..b7f2fa76 100644 --- a/recipes/meson.toml +++ b/recipes/meson.toml @@ -6,6 +6,7 @@ # árbol Python sellado. python3 es dep de RUNTIME (meson lo invoca al usarse como build-dep). name = "meson" version = "1.11.1" +license = "Apache-2.0" [source] tarball = "https://github.com/mesonbuild/meson/releases/download/1.11.1/meson-1.11.1.tar.gz" diff --git a/recipes/musl.toml b/recipes/musl.toml index 36a2e6af..6eb2807e 100644 --- a/recipes/musl.toml +++ b/recipes/musl.toml @@ -6,6 +6,7 @@ name = "musl" version = "1.2.5" +license = "MIT" [source] tarball = "https://musl.libc.org/releases/musl-1.2.5.tar.gz" diff --git a/recipes/openssl.toml b/recipes/openssl.toml index edada6ed..4a614ed5 100644 --- a/recipes/openssl.toml +++ b/recipes/openssl.toml @@ -16,6 +16,7 @@ name = "openssl" version = "3.5.4" +license = "Apache-2.0" [source] tarball = "https://github.com/openssl/openssl/releases/download/openssl-3.5.4/openssl-3.5.4.tar.gz" diff --git a/recipes/pango.toml b/recipes/pango.toml index 2fab4f94..e2c4e462 100644 --- a/recipes/pango.toml +++ b/recipes/pango.toml @@ -1,6 +1,7 @@ # pango 1.57.1 — layout/render de texto i18n (base de GTK). meson static. name = "pango" version = "1.57.1" +license = "LGPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/pango/1.57/pango-1.57.1.tar.xz" sha256 = "e65d6d117080dc3aeeb7d8b4b3b518f7383aa2e6cfce23117c623cd624764c2f" diff --git a/recipes/patch.toml b/recipes/patch.toml index 7730bce7..bd858045 100644 --- a/recipes/patch.toml +++ b/recipes/patch.toml @@ -8,6 +8,7 @@ name = "patch" version = "2.8" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/patch/patch-2.8.tar.gz" diff --git a/recipes/pcre2.toml b/recipes/pcre2.toml index 09dc36b8..01225db9 100644 --- a/recipes/pcre2.toml +++ b/recipes/pcre2.toml @@ -5,6 +5,7 @@ # - sin --enable-pcre2test-libedit (libedit no está en corpus, es solo para el test interactivo). name = "pcre2" version = "10.47" +license = "BSD-3-Clause" [source] tarball = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.47/pcre2-10.47.tar.bz2" diff --git a/recipes/perl.toml b/recipes/perl.toml index d4587b03..8fc13a1e 100644 --- a/recipes/perl.toml +++ b/recipes/perl.toml @@ -10,6 +10,7 @@ # escritorio, es herramienta de build. Configure propio de perl (no autotools). zig cc vía wrapper. name = "perl" version = "5.40.2" +license = "Artistic-1.0-Perl OR GPL-1.0-or-later" [source] tarball = "https://www.cpan.org/src/5.0/perl-5.40.2.tar.gz" diff --git a/recipes/pixman.toml b/recipes/pixman.toml index 18528842..e846c73d 100644 --- a/recipes/pixman.toml +++ b/recipes/pixman.toml @@ -2,6 +2,7 @@ # para composición/recorte en CPU). Proyecto meson, sin deps externas. Sin tests/demos/gtk. name = "pixman" version = "0.44.2" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/pixman/pixman/-/archive/pixman-0.44.2/pixman-pixman-0.44.2.tar.gz" diff --git a/recipes/pkgconf.toml b/recipes/pkgconf.toml index c9135c3a..65729b92 100644 --- a/recipes/pkgconf.toml +++ b/recipes/pkgconf.toml @@ -10,6 +10,7 @@ name = "pkgconf" version = "2.5.1" +license = "ISC" [source] tarball = "https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.gz" diff --git a/recipes/python3.toml b/recipes/python3.toml index 5b53daf7..9768d703 100644 --- a/recipes/python3.toml +++ b/recipes/python3.toml @@ -21,6 +21,7 @@ name = "python3" version = "3.12.10" +license = "Python-2.0" [source] tarball = "https://www.python.org/ftp/python/3.12.10/Python-3.12.10.tgz" diff --git a/recipes/samurai.toml b/recipes/samurai.toml index 085a70f8..7f719b69 100644 --- a/recipes/samurai.toml +++ b/recipes/samurai.toml @@ -4,6 +4,7 @@ # con "reallocarray: No error information" — el patrón conocido (binutils/elfutils/flex). name = "samurai" version = "1.3" +license = "ISC" [source] tarball = "https://github.com/michaelforney/samurai/releases/download/1.3/samurai-1.3.tar.gz" diff --git a/recipes/sed.toml b/recipes/sed.toml index 72721e89..d336470f 100644 --- a/recipes/sed.toml +++ b/recipes/sed.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "sed" version = "4.10" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/pub/gnu/sed/sed-4.10.tar.xz" diff --git a/recipes/sqlite.toml b/recipes/sqlite.toml index 4dfbdf2a..057839f7 100644 --- a/recipes/sqlite.toml +++ b/recipes/sqlite.toml @@ -1,6 +1,7 @@ # sqlite 3.46.1 — base de datos embebida (la usan incontables apps). autotools (amalgamation), static. name = "sqlite" version = "3.46.1" +license = "blessing" [source] tarball = "https://sqlite.org/2024/sqlite-autoconf-3460100.tar.gz" sha256 = "67d3fe6d268e6eaddcae3727fce58fcc8e9c53869bdd07a0c61e38ddf2965071" diff --git a/recipes/tar.toml b/recipes/tar.toml index b64c788e..838c492f 100644 --- a/recipes/tar.toml +++ b/recipes/tar.toml @@ -3,6 +3,7 @@ # sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. name = "tar" version = "1.35" +license = "GPL-3.0-or-later" [source] tarball = "https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz" diff --git a/recipes/util-linux.toml b/recipes/util-linux.toml index 0363bd28..df64eff9 100644 --- a/recipes/util-linux.toml +++ b/recipes/util-linux.toml @@ -3,6 +3,7 @@ # mount/umount/lsblk/blkid/fdisk/lscpu (utilería base del sistema). name = "util-linux" version = "2.42.2" +license = "GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause" [source] tarball = "https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz" diff --git a/recipes/wayland-protocols.toml b/recipes/wayland-protocols.toml index e973f8ee..e5fd42dd 100644 --- a/recipes/wayland-protocols.toml +++ b/recipes/wayland-protocols.toml @@ -3,6 +3,7 @@ # de meson chequea wayland-scanner). Sin tests. name = "wayland-protocols" version = "1.48" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.48/downloads/wayland-protocols-1.48.tar.xz" diff --git a/recipes/wayland.toml b/recipes/wayland.toml index b0168cb0..a0878a5c 100644 --- a/recipes/wayland.toml +++ b/recipes/wayland.toml @@ -14,6 +14,7 @@ # docs/14 §Estado de build y el encabezado del .patch. name = "wayland" version = "1.25.0" +license = "MIT" [source] tarball = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.25.0/downloads/wayland-1.25.0.tar.xz" diff --git a/recipes/xz.toml b/recipes/xz.toml index ed8cf871..0473aed3 100644 --- a/recipes/xz.toml +++ b/recipes/xz.toml @@ -2,6 +2,7 @@ # De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, solo la lib (--disable CLI tools), estático. name = "xz" version = "5.8.3" +license = "0BSD" [source] tarball = "https://github.com/tukaani-project/xz/releases/download/v5.8.3/xz-5.8.3.tar.xz" sha256 = "fff1ffcf2b0da84d308a14de513a1aa23d4e9aa3464d17e64b9714bfdd0bbfb6" diff --git a/recipes/zlib.toml b/recipes/zlib.toml index cc9cfd5a..22d65437 100644 --- a/recipes/zlib.toml +++ b/recipes/zlib.toml @@ -14,6 +14,7 @@ name = "zlib" version = "1.3.1" +license = "Zlib" [source] tarball = "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" diff --git a/recipes/zstd.toml b/recipes/zstd.toml index 3ea80541..c7f1f388 100644 --- a/recipes/zstd.toml +++ b/recipes/zstd.toml @@ -2,6 +2,7 @@ # (compresión moderna) + cola C. De-Alpinizada: compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), build de lib/ (no CLI), estático. name = "zstd" version = "1.5.7" +license = "BSD-3-Clause OR GPL-2.0-only" [source] tarball = "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" sha256 = "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3" diff --git a/scripts/licencias.sh b/scripts/licencias.sh new file mode 100755 index 00000000..62828ba7 --- /dev/null +++ b/scripts/licencias.sh @@ -0,0 +1,117 @@ +#!/usr/bin/env bash +# licencias.sh — mide y puebla el campo `license` de las recetas. SDD 19 §2.1. +# +# ── EL PROBLEMA ───────────────────────────────────────────────────────────────────────────────── +# Medido el 2026-08-07: **0 de 1141 recetas** declaraban licencia. (Un informe anterior dijo «5 de +# 771»; los dos números estaban mal. Los «5» eran falsos positivos de `grep license`: el paquete +# `addlicense`, el paquete `cargo-bundle-licenses`, una línea `install ... /usr/share/licenses/` y un +# comentario. Y las recetas son 1141, no 771. Lección: contar con `grep -l ` sobre TOML +# cuenta comentarios y nombres, no campos.) +# +# Sin ese dato la distro no puede cumplir la GPL cuando redistribuye binarios: la obligación es +# acompañar el binario del texto de la licencia y poder entregar la fuente correspondiente. Es +# BLOQUEANTE para publicar, y es la deuda que más barato sale pagar temprano: a 1141 recetas es un +# rato de trabajo, a 2600 es un proyecto. +# +# ── POR QUÉ ESTO NO RE-HASHEA NADA (lo que hace la deuda pagable) ─────────────────────────────── +# `Recipe::hash_inputs` es una LISTA BLANCA: sólo entran source, compiler, target, link, patches, +# flags, phases y deps. `license` no entra, igual que `evidence` y `slots`. O sea que se puede poblar +# en las 1141 recetas YA SELLADAS sin mover un solo ArtifactHash ni invalidar el baseline de +# reproducibilidad. Está clavado con un test: `licencia_round_trip_y_no_afecta_el_hash`. +# +# ── DÓNDE VA LA LÍNEA (trampa de TOML, cuesta una tarde si se ignora) ─────────────────────────── +# En TOML una clave suelta después de un `[table]` pertenece a ESA tabla. `license = "..."` puesto al +# final del fichero acaba dentro de `[deps]` y **se pierde en silencio**, porque serde ignora los +# campos que no conoce: no hay error, simplemente no está. Va ARRIBA, junto a `name` y `version`. +# +# ── LA REGLA DE HONESTIDAD: NO SE ADIVINA ─────────────────────────────────────────────────────── +# Declarar mal una licencia es PEOR que no declararla — convierte un hueco visible en una afirmación +# falsa sobre la que alguien va a construir. Por eso este script no infiere de la URL ni del nombre. +# Sólo puebla desde `docs/licencias-conocidas.tsv`, una tabla curada y auditable a mano, y desde los +# ficheros COPYING/LICENSE de árboles de fuente realmente extraídos. Lo que no tiene evidencia se +# queda vacío y SE CUENTA. Un hueco contado es deuda; un hueco rellenado a ojo es una mentira. +# +# ── EL ARREGLO ESTRUCTURAL, QUE ES OTRO TICKET ────────────────────────────────────────────────── +# Poblar a mano tapa el agujero de hoy pero no impide que vuelva a abrirse: cada receta nueva nace +# sin licencia. El cierre de verdad es capturarla donde ya pasa el dato gratis — hammer YA descarga y +# extrae cada tarball al construir, así que la fase de fetch puede guardar el COPYING/LICENSE del +# árbol junto al artefacto, sin descargas extra. Y el texto de la licencia dentro del paquete conviene +# inyectarlo en `hammer pack`, NO en la fase install de la receta: pack es aguas abajo del +# ArtifactHash, así que cumplir la GPL no cuesta reconstruir el corpus. Ver SDD 19. +# +# Uso: scripts/licencias.sh informe de cobertura (default, no toca nada) +# scripts/licencias.sh --sembrar escribe las licencias de la tabla curada +# scripts/licencias.sh --faltan lista las recetas sin licencia, para trabajarlas +set -uo pipefail +ROOT="$(cd "$(dirname "$0")/.." && pwd)"; cd "$ROOT" +TABLA="${TABLA:-docs/licencias-conocidas.tsv}" +MODO="${1:-informe}" + +recetas() { ls recipes/*.toml recipes/incoming-*/*.toml 2>/dev/null; } + +# Un campo `license` de verdad: clave a principio de línea, ANTES del primer `[table]`. +# (Ver arriba: después de un `[table]` la clave pertenece a la tabla y no la lee el parser.) +tiene_licencia() { + awk '/^\[/{exit} /^[[:space:]]*license[[:space:]]*=/{print "si"; exit}' "$1" | grep -q si +} + +licencia_de() { + awk -F'"' '/^\[/{exit} /^[[:space:]]*license[[:space:]]*=/{print $2; exit}' "$1" +} + +case "$MODO" in +# ── sembrar: escribir las licencias de la tabla curada ────────────────────────────────────────── +--sembrar) + [ -s "$TABLA" ] || { echo "!! falta la tabla curada: $TABLA"; exit 1; } + puestas=0; ya=0; sin_receta=0 + while IFS=$'\t' read -r pkg lic; do + case "$pkg" in ''|'#'*) continue ;; esac + [ -n "${lic:-}" ] || continue + hallada=0 + for f in recipes/"$pkg".toml recipes/incoming-*/"$pkg".toml; do + [ -f "$f" ] || continue + hallada=1 + if tiene_licencia "$f"; then ya=$((ya+1)); continue; fi + # Insertar DESPUÉS de la línea `version = ...`, que está en la raíz del TOML y antes de + # cualquier `[table]`. Es el único sitio seguro (ver la trampa de TOML en la cabecera). + if grep -qE '^version[[:space:]]*=' "$f"; then + awk -v L="license = \"$lic\"" ' + {print} + !done && /^version[[:space:]]*=/ {print L; done=1} + ' "$f" > "$f.tmp" && mv "$f.tmp" "$f" + puestas=$((puestas+1)) + else + echo " ?? $pkg: sin línea `version` en la raíz, no toco el fichero" + fi + done + [ "$hallada" = 0 ] && sin_receta=$((sin_receta+1)) + done < "$TABLA" + echo "==> sembradas $puestas · ya tenían $ya · en la tabla pero sin receta $sin_receta" + echo "==> verificá que el hash NO se movió: ./scripts/store-gc.sh (debe dar los mismos vigentes)" + ;; + +# ── faltan: la lista de trabajo ───────────────────────────────────────────────────────────────── +--faltan) + recetas() { ls recipes/*.toml recipes/incoming-*/*.toml 2>/dev/null; } + for f in $(recetas); do tiene_licencia "$f" || basename "$f" .toml; done + ;; + +# ── informe (default) ─────────────────────────────────────────────────────────────────────────── +*) + tot=0; con=0 + : > /tmp/.lic-cuenta.$$ + for f in $(recetas); do + tot=$((tot+1)) + if tiene_licencia "$f"; then con=$((con+1)); licencia_de "$f" >> /tmp/.lic-cuenta.$$; fi + done + pct=0; [ "$tot" -gt 0 ] && pct=$((con*100/tot)) + echo "==> licencias declaradas: $con de $tot recetas (${pct}%)" + if [ "$con" -gt 0 ]; then + echo "==> reparto:" + sort /tmp/.lic-cuenta.$$ | uniq -c | sort -rn | head -25 | sed 's/^/ /' + fi + rm -f /tmp/.lic-cuenta.$$ + [ "$con" -lt "$tot" ] && echo "==> faltan $((tot-con)). Lista: scripts/licencias.sh --faltan" + echo "==> recordá: NO se rellena a ojo. Sin evidencia, se deja vacío y se cuenta (ver cabecera)." + ;; +esac diff --git a/scripts/respaldo-storagebox.sh b/scripts/respaldo-storagebox.sh index 02c06d6e..b1e2bcd9 100755 --- a/scripts/respaldo-storagebox.sh +++ b/scripts/respaldo-storagebox.sh @@ -9,11 +9,36 @@ # El Storage Box SÍ es el producto para esto: se monta desde acá (SSHFS/CIFS) y habla rsync/borg/ # restic por SSH. BX11 = 1 TiB por €3,20/mes, sin coste de alta. Ver [[capacidad-disco-proyeccion]]. # +# ── ES INTERRUMPIBLE Y CONTINUABLE. ESE ES EL DISEÑO, NO UN EFECTO SECUNDARIO ─────────────────── +# Medido en la oficina el 2026-08-07: el enlace da **8 Mbps de subida**, idénticos por cable (eth0) +# y por wifi (wlan0) ⇒ el cuello NO está en el laptop, está en el uplink. Con 128 G de store eso son +# ~35 h sin comprimir. Por lo tanto el respaldo NO se completa en una sentada, y todo el script está +# construido alrededor de esa realidad: +# · rsync incremental: lo ya subido no se vuelve a subir (el store es CAS, los ficheros nunca +# cambian, así que la comparación por tamaño+fecha es exacta y baratísima). +# · `--partial-dir`: un fichero cortado a la mitad conserva el trozo y la próxima corrida lo +# TERMINA en vez de empezarlo de cero. Sin esto, cortar a mitad de un artefacto de 500 MB +# tiraría los 400 MB ya subidos. +# · Se puede matar con Ctrl-C o apagar el laptop en cualquier momento. Se relanza y sigue. +# +# ── EL ORDEN ES POR VALOR IRREEMPLAZABLE, NO POR TAMAÑO ───────────────────────────────────────── +# Como no cabe todo en una ventana, lo que sube primero importa. De más a menos crítico: +# 1. ESTADO Y REPO (~cientos de MB, minutos). Recetas, scripts, SDDs, el grafo. Es el CEREBRO: con +# esto solo, el store entero se reconstruye — caro en CPU, pero se reconstruye. Sin esto no hay +# proyecto. Va primero aunque ya esté espejado a GitHub, porque un respaldo que depende de otro +# respaldo no es un respaldo. +# 2. HUÉRFANOS del store (~4,5 G). Artefactos que son el ÚNICO ejemplar de su receta: su hash +# vigente no está sellado, así que perderlos es perder trabajo real, no reconstruible en dos +# minutos. Es el material genuinamente irreemplazable y es sorprendentemente barato. +# 3. EL RESTO DEL STORE (~128 G). Meses de CPU, pero todo reconstruible desde (1). +# # ── POR QUÉ rsync PLANO Y NO borg/restic ──────────────────────────────────────────────────────── # El store es CAS: los ficheros son INMUTABLES y se nombran por hash. Nunca cambian, sólo aparecen o # desaparecen. Para eso rsync incremental es exactamente lo correcto y no hay que mantener repos ni -# claves de cifrado. borg comprimiría 4x (el 79% del store es `.debug_`), pero 126 G en 1 TiB no -# aprieta a nadie: no vale la complejidad todavía. Si algún día aprieta, ahí sí borg. +# claves de cifrado. Sí se usa COMPRESIÓN zstd, que aquí no es un lujo: medido, 53 MB tardan 53 s sin +# comprimir y 27 s con `--compress-choice=zstd` — **el doble de rendimiento efectivo**, porque el 79% +# del contenido del store son secciones `.debug_*` y comprimen como texto. Con un enlace de 8 Mbps la +# CPU sobra y el ancho de banda es el recurso escaso: comprimir siempre gana. # # ── EL STORE NO SE BORRA EN EL DESTINO, A PROPÓSITO ───────────────────────────────────────────── # `--delete` NO va sobre el store. Un respaldo que replica los borrados no protege del borrado por @@ -22,6 +47,7 @@ # deliberada y aparte. El repo sí va con `--delete`, que para eso está git. # # Uso: scripts/respaldo-storagebox.sh [--seco] +# Relanzalo cuantas veces quieras: continúa donde quedó. set -eu SB_USER="${SB_USER:-u647150}" @@ -33,33 +59,43 @@ RAIZ="${RAIZ:-/home/sergio/hammer}" SECO="" [ "${1:-}" = "--seco" ] && SECO="--dry-run" -SSH_CMD="ssh -p $SB_PORT -i $KEY -o StrictHostKeyChecking=accept-new" +# `-4` a propósito: el box tiene AAAA y el laptop tiene IPv6 sólo en wlan0, así que sin esto la ruta +# por cable nunca se usaría aunque el cable estuviera enchufado. +SSH_CMD="ssh -4 -p $SB_PORT -i $KEY -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=30" -if ! $SSH_CMD "$SB_USER@$SB_HOST" true 2>/dev/null; then +# Opciones comunes. `--partial-dir` es lo que hace el respaldo continuable a mitad de fichero. +RS="rsync -a --partial-dir=.rsync-partial --info=progress2 -z --compress-choice=zstd --compress-level=3" + +if ! $SSH_CMD "$SB_USER@$SB_HOST" 'df -h .' >/dev/null 2>&1; then echo "!! No hay SSH al Storage Box ($SB_HOST:$SB_PORT)." echo "!! Si acabás de crearlo, el DNS tarda unos minutos en propagar. Reintentá." exit 1 fi echo "==> destino: $SB_USER@$SB_HOST:$SB_PORT ${SECO:+(SECO)}" -$SSH_CMD "$SB_USER@$SB_HOST" 'mkdir -p hammer/store hammer/repo hammer/estado' 2>/dev/null || true +$SSH_CMD "$SB_USER@$SB_HOST" 'mkdir hammer hammer/store hammer/repo hammer/estado' >/dev/null 2>&1 || true -# 1. EL STORE — lo caro e irreemplazable (meses de CPU). Sin --delete, ver cabecera. -echo "==> store" -rsync -a --info=progress2 --partial $SECO -e "$SSH_CMD" \ - "$RAIZ/store/" "$SB_USER@$SB_HOST:hammer/store/" +# ── 1. EL CEREBRO: estado + repo. Minutos, y es lo que no se puede perder. ────────────────────── +echo "==> [1/3] estado (el grafo: qué había construido y con qué hash)" +$RS $SECO -e "$SSH_CMD" "$RAIZ/docs/state/" "$SB_USER@$SB_HOST:hammer/estado/" || true -# 2. EL REPO — barato, y ya está espejado a GitHub privado; va igual para tener todo en un sitio. -# Se excluye lo regenerable y lo gigante: store (arriba), work, target, .dev-fs. -echo "==> repo" -rsync -az --delete $SECO -e "$SSH_CMD" \ - --exclude /store --exclude /work --exclude /target --exclude /.dev-fs \ - --exclude /dist --exclude /.scratch \ +echo "==> [2/3] repo (recetas, scripts, SDDs — el cerebro; con esto solo se reconstruye el store)" +$RS --delete $SECO -e "$SSH_CMD" \ + --exclude /store --exclude /store-rust --exclude /store-kern \ + --exclude /work --exclude /target --exclude /.dev-fs --exclude /dist --exclude /.scratch \ "$RAIZ/" "$SB_USER@$SB_HOST:hammer/repo/" -# 3. El grafo de estado, aparte, para poder mirar qué había sin desempacar nada. -echo "==> estado" -rsync -az $SECO -e "$SSH_CMD" "$RAIZ/docs/state/" "$SB_USER@$SB_HOST:hammer/estado/" 2>/dev/null || true +# ── 2 y 3. EL STORE, huérfanos primero. ──────────────────────────────────────────────────────── +# La lista de huérfanos la produce `store-gc.sh` como subproducto; si no hay una reciente, se sube +# el store entero en un solo paso y santas pascuas (rsync es incremental: no se pierde nada). +echo "==> [3/3] store (128 G a 8 Mbps ⇒ NO cabe en una sentada; esto se corta y se continúa)" +HUER="$(ls -t "$RAIZ"/work/store-gc-huerfanos-*.txt 2>/dev/null | head -1)" +if [ -n "$HUER" ] && [ -s "$HUER" ]; then + echo " · huérfanos primero ($(wc -l < "$HUER") artefactos, únicos ejemplares) — desde $HUER" + $RS $SECO -e "$SSH_CMD" --files-from="$HUER" "$RAIZ/store/" "$SB_USER@$SB_HOST:hammer/store/" || true +fi +echo " · resto del store" +$RS $SECO -e "$SSH_CMD" "$RAIZ/store/" "$SB_USER@$SB_HOST:hammer/store/" echo "==> ocupación en el Storage Box:" -$SSH_CMD "$SB_USER@$SB_HOST" 'df -h . 2>/dev/null | tail -1; du -sh hammer/* 2>/dev/null' +$SSH_CMD "$SB_USER@$SB_HOST" 'df -h .' 2>/dev/null | tail -2