sergio/takana
> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…
⎇ de660fc10f177756acc5c9a36691abae1895dd24
recipes/incoming-kde/qqc2-breeze-style.toml
Historia
crudo
qqc2-breeze-style 6.7.2: el estilo QML de Plasma sellado — KDE pasa de 3 wanted a 2
1# qqc2-breeze-style 6.7.2 — el estilo Breeze para QtQuick Controls 2. Segundo de los cuatro huecos de
2# RUNTIME del triaje de la frontera: ninguna receta lo pide para construir, pero sin él los controles
3# QML de Plasma (botones, sliders, combos, menús de los applets y de los KCM) se dibujan con el estilo
4# genérico de Qt en vez del de Plasma. No lo reemplaza qqc2-desktop-style: ese es el estilo de
5# escritorio genérico integrado con KStyle; éste es la implementación QML nativa de Breeze, que es la
6# que Plasma 6 usa por defecto (y la única que corre sin QWidget debajo).
7#
8# ── ES DE PLASMA, NO DE FRAMEWORKS ─────────────────────────────────────────────────────────────
9# Se llama casi igual que qqc2-desktop-style y viene del OTRO tarball: éste sale del release de
10# Plasma (6.7.2, el mismo de breeze/kwin/plasma-workspace) y aquél de Frameworks (6.27.0). Copiar la
11# URL del vecino da un 404.
12name = "qqc2-breeze-style"
13version = "6.7.2"
14license = "LGPL-2.1-only OR LGPL-3.0-only"
15
16[source]
17tarball = "https://download.kde.org/stable/plasma/6.7.2/qqc2-breeze-style-6.7.2.tar.xz"
18# Contrastado contra el .sha256 que publica KDE al lado del tarball, no sólo contra lo que bajó acá.
19sha256 = "94e1dad9b110c43d48d8bea7c12e7fa2754e56d1a05a7bb249a03035e77f5b49"
20
21[build]
22compiler = "zig-cc"
23target = "x86_64-linux-musl"
24link = "dynamic"
25flags = []
26
27[build.phases]
28# Wrapper .zwrap: patrón KF6/Plasma del corpus. KDECompilerSettings mete `-Wl,--fatal-warnings`, que
29# zig ld no entiende y convierte cualquier aviso del linker en un fallo duro; el wrapper lo filtra.
30configure = '''
31ZW="$PWD/.zwrap"; mkdir -p "$ZW"
32cat > "$ZW/cc" <<'W'
33#!/bin/sh
34a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
35exec /opt/zig/zig cc -mcpu=baseline $a
36W
37cat > "$ZW/cxx" <<'W'
38#!/bin/sh
39a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
40exec /opt/zig/zig c++ -mcpu=baseline $a
41W
42chmod +x "$ZW/cc" "$ZW/cxx"
43cmake -B build -G Ninja -Wno-dev \
44 -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
45 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
46 -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
47 -DBUILD_TESTING=OFF
48'''
49compile = "cmake --build build"
50install = '''
51set -e
52DESTDIR=/out cmake --install build
53
54# Verificación por CONTENIDO. El artefacto son plugins QML: si el módulo se instala sin su qmldir o
55# sin los .qml, el directorio existe, pesa, y Plasma arranca con el estilo genérico sin decir nada.
56test -s /out/usr/lib/qt6/qml/org/kde/breeze/qmldir
57test -s /out/usr/lib/qt6/qml/org/kde/breeze/impl/qmldir
58test -f /out/usr/lib/qt6/qml/org/kde/breeze/Button.qml
59test -f /out/usr/lib/qt6/plugins/kf6/kirigami/platform/org.kde.breeze.so
60echo " qml: $(find /out/usr/lib/qt6/qml/org/kde/breeze -name '*.qml' | wc -l) controles"
61'''
62
63# La lista NO es la del vecino qqc2-desktop-style copiada: sale de la clausura de `find_dependency`
64# de los KF6*Config.cmake que ya están en el store. Ese recorrido enseñó algo útil: casi todo lo que
65# esos configs piden (X11, XCB, Wayland, OpenSSL, BZip2, LibLZMA) está dentro de un `if (NOT TRUE)`
66# —la rama de build estático— y por lo tanto es CÓDIGO MUERTO en nuestro corpus, que compila KF6
67# dinámico. Por eso acá no hay libX11 ni xorgproto: no los pide nadie, y el escritorio es Wayland.
68# `find_package(X11)` del CMakeLists raíz no es REQUIRED, así que falla en silencio y no rompe el
69# feature_summary(FATAL_ON_MISSING_REQUIRED_PACKAGES).
70[deps]
71build = ["cmake", "samurai", "python3", "pkgconf", "extra-cmake-modules", "gettext-tiny", "qttools",
72 "qtbase", "qtdeclarative", "qtsvg", "qtshadertools", "dbus",
73 "kirigami", "kconfig", "kcoreaddons", "kguiaddons", "kcolorscheme", "kiconthemes",
74 "karchive", "ki18n", "kwidgetsaddons",
75 "mesa", "libdrm", "libxkbcommon", "wayland"]