tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1346Shell 97Rust 63Markdown 571650 Definiciones

⎇ main recipes/incoming-kde/kcoreaddons.toml TOML · 71 líneas · 3.7 KB Historia crudo

kcoreaddons: prender el módulo QML — el menú de Plasma ABRE, y detrás de él konsole 914c1b72a · Sergio ·

1# kcoreaddons 6.27.0 — framework KF6 tier-1 más fundamental (KAboutData, KFormat, KJob, KProcess…).
2# Solo Qt6Core + ECM; base de casi todo KF6. Campaña KDE (ADR 0011), Capa 2. Patrón KF6 = patrón módulo
3# Qt (dynamic, wrappers zig, CMAKE_PREFIX_PATH=/usr) + dep extra-cmake-modules. Python bindings y docs
4# apagados. Core-only ⇒ sin el set Gui (mesa/xkb/wayland).
5#
6# ── `KCOREADDONS_USE_QML=ON` (2026-09-03): EL MENÚ DE APLICACIONES NO ABRÍA SIN ESTO ─────────────
7# Estuvo en OFF desde que se escribió la receta, con el argumento razonable de que un framework
8# tier-1 no debería arrastrar QML. El precio no se vio hasta hacer CLIC en el lanzador del panel
9# dentro de QEMU, donde Plasma contesta con el diálogo entero:
10#
11#   qrc:/qt/qml/plasma/applet/org/kde/plasma/kickoff/main.qml:191:25: Type FullRepresentation unavailable
12#   .../FullRepresentation.qml:69:13: Type Header unavailable
13#   .../Header.qml:18:1: module "org.kde.coreaddons" is not installed
14#
15# `kickoff` —el menú, o sea la puerta de entrada del escritorio— importa `org.kde.coreaddons` para
16# `KUser`/`KFormat` desde QML, y ese módulo lo instala ESTA receta y ninguna otra. Con el flag en OFF
17# la librería C++ sale completa, todos sus 70 consumidores enlazan bien, el perfil reporta 100% y el
18# menú no abre. **Es la forma más pura del «sellado ≠ arranca»: no falta una librería, falta una
19# porción OPCIONAL de una librería que sí está.**
20#
21# `qtdeclarative` ya estaba en `[deps].build` (lo pedían otros consumidores del cierre), así que
22# prenderlo no agrega una dep: sólo deja de tirar a la basura lo que ya se podía construir.
23#
24# ⚠ COSTO, medido antes de tocar: `yupana radio kcoreaddons` = **71** recetas KDE que caen a deuda,
25# porque el ArtifactHash cambia y con él el de todo lo que cuelga. Es campaña de granja, no ticket.
26#
27# EL BARRIDO QUE LO ENCUENTRA SIN HACER CLIC, para la próxima: cruzar los `import` de los `.qml`
28# INSTALADOS en el rootfs contra los módulos QML que tienen `qmldir`. Además de éste destapó que
29# faltan `org.kde.kscreenlocker` y `org.kde.newstuff.core` — dos huecos del mismo tipo, sin diagnosticar.
30name    = "kcoreaddons"
31version = "6.27.0"
32license = "LGPL-2.1-or-later OR LGPL-3.0-or-later"
33
34[source]
35tarball = "https://download.kde.org/stable/frameworks/6.27/kcoreaddons-6.27.0.tar.xz"
36sha256  = "ad0d0147968dabdcf011425cf7764e71a0d0cfdc30e9e34b561ea5ba9a768001"
37
38[build]
39compiler = "zig-cc"
40target   = "x86_64-linux-musl"
41link     = "dynamic"
42flags    = []
43
44[build.phases]
45configure = '''
46# Wrapper zig que FILTRA -Wl,--fatal-warnings: ECM (KDECompilerSettings) lo agrega y el linker de zig
47# lo rechaza ("unsupported linker arg"). Patrón KF6 (todos los frameworks usan ECM).
48ZW="$PWD/.zwrap"; mkdir -p "$ZW"
49cat > "$ZW/cc"  <<'W'
50#!/bin/sh
51a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
52exec /opt/zig/zig cc -mcpu=baseline $a
53W
54cat > "$ZW/cxx" <<'W'
55#!/bin/sh
56a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
57exec /opt/zig/zig c++ -mcpu=baseline $a
58W
59chmod +x "$ZW/cc" "$ZW/cxx"
60cmake -B build -G Ninja -Wno-dev \
61  -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
62  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
63  -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
64  -DBUILD_TESTING=OFF -DBUILD_PYTHON_BINDINGS=OFF -DBUILD_DESIGNERPLUGIN=OFF \
65  -DKCOREADDONS_USE_QML=ON
66'''
67compile = "cmake --build build"
68install = "DESTDIR=/out cmake --install build"
69
70[deps]
71build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "extra-cmake-modules", "util-linux", "qttools", "qtdeclarative", "mesa", "libdrm", "libxkbcommon", "wayland"]