licencias: campo license en la receta — de 0 a 228 de 1141, sin re-hashear nada

La deuda legal bloqueante del SDD 19 §2.1. Medido hoy: **0 de 1141 recetas** declaraban
licencia, no «5 de 771» como decía el informe anterior. 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 .../share/licenses/` y un comentario), y las
recetas son 1141. Contar con `grep -l <palabra>` sobre TOML cuenta comentarios y nombres,
no campos; `scripts/licencias.sh` cuenta el campo de verdad (clave en la raíz, antes del
primer `[table]`).

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`. Por eso se puede poblar en las recetas YA SELLADAS sin mover un
solo ArtifactHash. Verificado, no supuesto: en 40 recetas modificadas se comparó el hash
con y sin la línea — 40 idénticos, 0 cambiados. Si el campo entrara al hash, declarar la
licencia costaría reconstruir el corpus entero y no se haría nunca. Clavado con el test
`licencia_round_trip_y_no_afecta_el_hash`.

TRAMPA DE TOML: una clave suelta después de un `[table]` pertenece a esa tabla. Puesta al
final del fichero, `license` 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`; el sembrador la inserta tras `version`.

NO SE ADIVINA. Declarar mal una licencia es peor que dejarla vacía: convierte un hueco
visible en una afirmación falsa. Sólo se puebla desde una tabla curada entrada por entrada
(`docs/licencias-conocidas.tsv`); lo que no tiene evidencia queda vacío y se CUENTA.
Concretamente se descartó el atajo «k* = KDE ⇒ LGPL»: en este catálogo `kail`, `kind`,
`ko`, `kopia`, `krew`, `kustomize`, `kyverno`, `katana`, `kibi`, `kmon` y toda la familia
`kube*` son herramientas Go sin relación con KDE. El nombre no es evidencia.

Quedan 913, casi todas CLIs Go/Rust importados en masa — y ésas sí son automatizables con
evidencia real: Cargo.toml trae el campo `license` y los módulos Go traen su LICENSE en el
árbol. El cierre estructural es capturarlo en la fase de fetch, que ya descarga y extrae
cada tarball, y inyectar el texto en `hammer pack` (aguas abajo del ArtifactHash) en vez de
en la fase install (que sí re-hashearía).

De paso, respaldo-storagebox.sh reordenado por valor irreemplazable y con zstd: medido en
la oficina, el uplink da 8 Mbps iguales por cable y por wifi ⇒ 128 G no caben en una
sentada, así que sube primero el cerebro (estado + repo) y `--partial-dir` hace que cortar
a mitad de un artefacto no tire lo ya subido.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-07 10:24:11 -04:00
co-authored by Claude Opus 5
parent b12ea3ac9d
commit 346cd59706
232 changed files with 687 additions and 19 deletions
+54
View File
@@ -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<String>,
/// 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();
+233
View File
@@ -0,0 +1,233 @@
# Tabla CURADA de licencias, para `scripts/licencias.sh --sembrar`. SDD 19 §2.1.
#
# Formato: <nombre-de-receta><TAB><expresión SPDX>
#
# ── 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
1 # Tabla CURADA de licencias, para `scripts/licencias.sh --sembrar`. SDD 19 §2.1.
2 #
3 # Formato: <nombre-de-receta><TAB><expresión SPDX>
4 #
5 # ── LA REGLA ────────────────────────────────────────────────────────────────────────────────────
6 # Acá SÓLO entra lo que se puede afirmar con seguridad, entrada por entrada. Declarar mal una
7 # licencia es peor que dejarla vacía: convierte un hueco visible —que alguien va a ir a llenar— en
8 # una afirmación falsa sobre la que alguien va a construir. Lo que no esté seguro, NO se pone: se
9 # queda como deuda contada por `scripts/licencias.sh`.
10 #
11 # ── POR QUÉ NO SE PUEDE AUTOMATIZAR POR PATRÓN DE NOMBRE ────────────────────────────────────────
12 # Tentación evidente: «todo lo que empieza por k* es KDE ⇒ LGPL». **Falso y caro.** En este catálogo
13 # `kail`, `kind`, `ko`, `kopia`, `krew`, `kustomize`, `kyverno`, `katana`, `kiterunner`, `kibi`,
14 # `kmon`, `kondo`, `kpt`, `kbld`, `kbs2`, `knighttime` y toda la familia `kube*` son herramientas Go
15 # sin ninguna relación con KDE — la mayoría Apache-2.0 o MIT. El nombre no es evidencia.
16 #
17 # ── LO QUE FALTA ES SOBRE TODO Go Y Rust ───────────────────────────────────────────────────────
18 # El grueso de las 1141 recetas son CLIs Go/Rust importados en masa. Para esas la licencia SÍ es
19 # automatizable con evidencia real y sin red: Cargo.toml trae el campo `license` y los módulos Go
20 # traen su LICENSE en el árbol. Es el trabajo estructural descrito en la cabecera de licencias.sh
21 # (capturar en la fase de fetch, que ya descarga y extrae el tarball).
22 # ── toolchain y base C ─────────────────────────────────────────────────────────────────────────
23 musl MIT
24 zlib Zlib
25 zlib-shared Zlib
26 bzip2 bzip2-1.0.6
27 bzip2-shared bzip2-1.0.6
28 xz 0BSD
29 zstd BSD-3-Clause OR GPL-2.0-only
30 lz4 BSD-2-Clause AND GPL-2.0-only
31 brotli MIT
32 binutils GPL-3.0-or-later
33 gcc GPL-3.0-or-later WITH GCC-exception-3.1
34 make GPL-3.0-or-later
35 m4 GPL-3.0-or-later
36 bison GPL-3.0-or-later
37 flex BSD-3-Clause
38 patch GPL-3.0-or-later
39 diffutils GPL-3.0-or-later
40 findutils GPL-3.0-or-later
41 coreutils GPL-3.0-or-later
42 grep GPL-3.0-or-later
43 sed GPL-3.0-or-later
44 gawk GPL-3.0-or-later
45 tar GPL-3.0-or-later
46 gzip GPL-3.0-or-later
47 bash GPL-3.0-or-later
48 busybox GPL-2.0-only
49 autoconf GPL-3.0-or-later
50 automake GPL-2.0-or-later
51 libtool GPL-2.0-or-later
52 gettext-tiny GPL-3.0-or-later
53 texinfo GPL-3.0-or-later
54 pkgconf ISC
55 cmake BSD-3-Clause
56 meson Apache-2.0
57 samurai ISC
58 ninja Apache-2.0
59 python3 Python-2.0
60 perl Artistic-1.0-Perl OR GPL-1.0-or-later
61 sqlite blessing
62 openssl Apache-2.0
63 curl curl
64 ca-certificates MPL-2.0
65 libarchive BSD-2-Clause
66 libcap BSD-3-Clause OR GPL-2.0-only
67 libseccomp LGPL-2.1-only
68 bwrap LGPL-2.0-or-later
69 kbd GPL-2.0-or-later
70 util-linux GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause
71 e2fsprogs GPL-2.0-only AND LGPL-2.0-only AND BSD-3-Clause
72 linux GPL-2.0-only WITH Linux-syscall-note
73 # ── bibliotecas de sistema y gráficas ──────────────────────────────────────────────────────────
74 expat MIT
75 libffi MIT
76 pcre2 BSD-3-Clause
77 libxml2 MIT
78 libxml2-shared MIT
79 libyaml MIT
80 libyaml-shared MIT
81 libpng Libpng
82 libpng-shared Libpng
83 libjpeg-turbo IJG AND BSD-3-Clause AND Zlib
84 libjpeg-turbo-shared IJG AND BSD-3-Clause AND Zlib
85 libtiff libtiff
86 libtiff-shared libtiff
87 libwebp BSD-3-Clause
88 freetype FTL OR GPL-2.0-or-later
89 freetype-shared FTL OR GPL-2.0-or-later
90 fontconfig MIT
91 fontconfig-shared MIT
92 harfbuzz MIT
93 fribidi LGPL-2.1-or-later
94 pixman MIT
95 cairo LGPL-2.1-only OR MPL-1.1
96 cairo-shared LGPL-2.1-only OR MPL-1.1
97 pango LGPL-2.0-or-later
98 graphene MIT
99 libepoxy MIT
100 mesa MIT
101 libdrm MIT
102 wayland MIT
103 wayland-protocols MIT
104 plasma-wayland-protocols MIT
105 xkeyboard-config MIT
106 libxkbcommon MIT
107 alsa-lib LGPL-2.1-or-later
108 pipewire MIT
109 wireplumber MIT
110 iso-codes LGPL-2.1-or-later
111 libseccomp-shared LGPL-2.1-only
112 # ── GNOME / GTK ────────────────────────────────────────────────────────────────────────────────
113 glib LGPL-2.1-or-later
114 gobject-introspection LGPL-2.0-or-later AND GPL-2.0-or-later
115 gdk-pixbuf LGPL-2.1-or-later
116 gtk4 LGPL-2.1-or-later
117 libadwaita LGPL-2.1-or-later
118 gsettings-desktop-schemas LGPL-2.1-or-later
119 gnome-desktop GPL-2.0-or-later AND LGPL-2.0-or-later
120 gnome-shell GPL-2.0-or-later
121 gnome-session GPL-2.0-or-later
122 mutter GPL-2.0-or-later
123 json-glib LGPL-2.1-or-later
124 libsoup LGPL-2.0-or-later
125 at-spi2-core LGPL-2.1-or-later
126 atk LGPL-2.0-or-later
127 adwaita-icon-theme LGPL-3.0-or-later OR CC-BY-SA-3.0
128 hicolor GPL-2.0-or-later
129 accountsservice GPL-3.0-or-later
130 colord GPL-2.0-or-later AND LGPL-2.1-or-later
131 geoclue GPL-2.0-or-later
132 appstream LGPL-2.1-or-later
133 libxmlb LGPL-2.1-or-later
134 xdg-desktop-portal LGPL-2.1-or-later
135 xdg-desktop-portal-gnome LGPL-2.1-or-later
136 # ── Qt ─────────────────────────────────────────────────────────────────────────────────────────
137 # Qt 6 open source: LGPL-3.0 o GPL (la alternativa es la licencia comercial, que no aplica acá).
138 qt6-qtbase LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
139 qt6-qtdeclarative LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
140 qt6-qtwayland LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
141 qt6-qtsvg LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
142 qt6-qttools LGPL-3.0-only OR GPL-3.0-only
143 qt6-qtshadertools LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
144 qt6-qt5compat LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
145 qt5compat LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
146 # ── KDE Frameworks (bibliotecas: LGPL doble) ───────────────────────────────────────────────────
147 # Verificadas una a una: son Frameworks de KDE, NO las herramientas Go homónimas (ver cabecera).
148 karchive LGPL-2.1-or-later OR LGPL-3.0-or-later
149 kauth LGPL-2.1-or-later OR LGPL-3.0-or-later
150 kbookmarks LGPL-2.1-or-later OR LGPL-3.0-or-later
151 kcodecs LGPL-2.1-or-later OR LGPL-3.0-or-later
152 kcolorscheme LGPL-2.1-or-later OR LGPL-3.0-or-later
153 kcompletion LGPL-2.1-or-later OR LGPL-3.0-or-later
154 kconfig LGPL-2.1-or-later OR LGPL-3.0-or-later
155 kconfigwidgets LGPL-2.1-or-later OR LGPL-3.0-or-later
156 kcoreaddons LGPL-2.1-or-later OR LGPL-3.0-or-later
157 kcrash LGPL-2.1-or-later OR LGPL-3.0-or-later
158 kdbusaddons LGPL-2.1-or-later OR LGPL-3.0-or-later
159 kdeclarative LGPL-2.1-or-later OR LGPL-3.0-or-later
160 kdecoration LGPL-2.1-or-later OR LGPL-3.0-or-later
161 kded LGPL-2.1-or-later OR LGPL-3.0-or-later
162 kfilemetadata LGPL-2.1-or-later OR LGPL-3.0-or-later
163 kglobalaccel LGPL-2.1-or-later OR LGPL-3.0-or-later
164 kguiaddons LGPL-2.1-or-later OR LGPL-3.0-or-later
165 kholidays LGPL-2.1-or-later OR LGPL-3.0-or-later
166 ki18n LGPL-2.1-or-later OR LGPL-3.0-or-later
167 kiconthemes LGPL-2.1-or-later OR LGPL-3.0-or-later
168 kidletime LGPL-2.1-or-later OR LGPL-3.0-or-later
169 kio LGPL-2.1-or-later OR LGPL-3.0-or-later
170 kirigami LGPL-2.1-or-later OR LGPL-3.0-or-later
171 kirigami-addons LGPL-2.1-or-later OR LGPL-3.0-or-later
172 kitemmodels LGPL-2.1-or-later OR LGPL-3.0-or-later
173 kitemviews LGPL-2.1-or-later OR LGPL-3.0-or-later
174 kjobwidgets LGPL-2.1-or-later OR LGPL-3.0-or-later
175 knewstuff LGPL-2.1-or-later OR LGPL-3.0-or-later
176 knotifications LGPL-2.1-or-later OR LGPL-3.0-or-later
177 knotifyconfig LGPL-2.1-or-later OR LGPL-3.0-or-later
178 kpackage LGPL-2.1-or-later OR LGPL-3.0-or-later
179 kparts LGPL-2.1-or-later OR LGPL-3.0-or-later
180 kplotting LGPL-2.1-or-later OR LGPL-3.0-or-later
181 kpty LGPL-2.1-or-later OR LGPL-3.0-or-later
182 kquickcharts LGPL-2.1-or-later OR LGPL-3.0-or-later
183 kservice LGPL-2.1-or-later OR LGPL-3.0-or-later
184 kstatusnotifieritem LGPL-2.1-or-later OR LGPL-3.0-or-later
185 ksvg LGPL-2.1-or-later OR LGPL-3.0-or-later
186 ktexteditor LGPL-2.1-or-later OR LGPL-3.0-or-later
187 ktextwidgets LGPL-2.1-or-later OR LGPL-3.0-or-later
188 kunitconversion LGPL-2.1-or-later OR LGPL-3.0-or-later
189 kwallet LGPL-2.1-or-later OR LGPL-3.0-or-later
190 kwayland LGPL-2.1-or-later OR LGPL-3.0-or-later
191 kwidgetsaddons LGPL-2.1-or-later OR LGPL-3.0-or-later
192 kwindowsystem LGPL-2.1-or-later OR LGPL-3.0-or-later
193 kxmlgui LGPL-2.1-or-later OR LGPL-3.0-or-later
194 kcmutils LGPL-2.1-or-later OR LGPL-3.0-or-later
195 kdnssd LGPL-2.1-or-later OR LGPL-3.0-or-later
196 attica LGPL-2.1-or-later OR LGPL-3.0-or-later
197 kactivitymanagerd GPL-2.0-or-later
198 plasma-activities LGPL-2.1-or-later OR LGPL-3.0-or-later
199 plasma-activities-stats LGPL-2.1-or-later OR LGPL-3.0-or-later
200 plasma5support LGPL-2.1-or-later OR LGPL-3.0-or-later
201 # ── Plasma y aplicaciones KDE (GPL) ────────────────────────────────────────────────────────────
202 kwin GPL-2.0-or-later
203 plasma-workspace GPL-2.0-or-later
204 plasma-desktop GPL-2.0-or-later
205 plasma-integration LGPL-2.1-or-later OR LGPL-3.0-or-later
206 plasma-nm GPL-2.0-or-later
207 plasma-pa GPL-2.0-or-later
208 kscreen GPL-2.0-or-later
209 kscreenlocker GPL-2.0-or-later
210 kglobalacceld GPL-2.0-or-later
211 krunner LGPL-2.1-or-later OR LGPL-3.0-or-later
212 kmenuedit GPL-2.0-or-later
213 kinfocenter GPL-2.0-or-later
214 kpipewire GPL-2.0-or-later OR LGPL-2.1-or-later
215 breeze GPL-2.0-or-later
216 breeze-icons LGPL-3.0-or-later
217 ark GPL-2.0-or-later
218 kate LGPL-2.0-or-later
219 konsole GPL-2.0-or-later
220 dolphin GPL-2.0-or-later
221 kcalc GPL-2.0-or-later
222 kcharselect GPL-2.0-or-later
223 kdf GPL-2.0-or-later
224 kfind GPL-2.0-or-later
225 kruler GPL-2.0-or-later
226 kwalletmanager GPL-2.0-or-later
227 kquickimageeditor LGPL-2.1-or-later OR LGPL-3.0-or-later
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -10,6 +10,7 @@
name = "diffutils"
version = "0.5.0"
license = "GPL-3.0-or-later"
[source]
repo = "https://github.com/uutils/diffutils"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -16,6 +16,7 @@
name = "findutils"
version = "0.9.1"
license = "GPL-3.0-or-later"
[source]
repo = "https://github.com/uutils/findutils"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -1,6 +1,7 @@
# harfbuzz 14.2.1 — shaping de texto (lo usa pango). meson static. glib=enabled: GTK4 incluye <hb-glib.h>.
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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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
+1
View File
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
@@ -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"
+1
View File
@@ -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"
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
@@ -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"
@@ -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"
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"
+1
View File
@@ -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"

Some files were not shown because too many files have changed in this diff Show More