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 1572Shell 203Rust 109Markdown 993728 Sutichaykuna

kde/Plasma: powerdevil + kscreen (energía y pantallas) + base de AUDIO (alsa-lib/speexdsp/libsndfile)

powerdevil 6.7.2 (299af51a): daemon de energía + acciones (suspendsession/dimdisplay/dpms/
brightnesscontrol) + KCMs. kscreen 6.7.2 (ef6218e6): kcm_kscreen + kscreen KDED + kscreen-console +
hdrcalibrator.

Base de audio REAL (el lab sólo tenía libcanberra con backend NULL, sin reproducción):
  alsa-lib 1.2.14   c6896caf  libasound.so.2 (--disable-python)
  speexdsp 1.2.1    dc235b15  libspeexdsp.so.1 (resampler de PulseAudio)
  libsndfile 1.2.2  c44d0142  libsndfile.so.1 (--disable-external-libs: sin FLAC/Opus, que no están
                              sellados; WAV/AIFF/AU basta para sonidos del sistema). Necesita python3.
Siguiente eslabón: pulseaudio → pulseaudio-qt → plasma-pa (applet de volumen).

3 lecciones de la depuración de powerdevil (dep-set de 69):
- ** FALTABA** y el síntoma era engañoso: 'Could NOT find KF6 (missing: KIO KCMUtils
  XmlGui)'. La cadena real es KF6ConfigWidgets→find_dependency(KF6WidgetsAddons) ausente ⇒ ConfigWidgets
  NOT_FOUND ⇒ cascadea a XmlGui/KIO/KCMUtils. Para diagnosticar hay que seguir los 'could not be found
  because dependency X' hacia ARRIBA, no fiarse de los componentes que CMake lista.
- **PlasmaWaylandProtocols/WaylandProtocols/qtwayland** son deps directas de todo lo que toca Wayland
  (powerdevil, kscreen). Idem los QML modules (kscreen: org.kde.kitemmodels + org.kde.plasma.plasma5support
  → kitemmodels/plasma5support directos; ambos YA traen su qml/, no hacía falta variante QML=ON).
- **timeout del build**:  mató powerdevil a mitad del rebuild de plasma-workspace (mi
  cambio de zlib-shared cascadeó kwin[1825 obj]+plasma-workspace[1962 obj]). Usar timeouts largos
  (9000) para recetas con dep-sets grandes. Además: 24778 AUTO-MATCHEA el propio
  comando de chequeo → usar .

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

85cfb02d4dbb52cc1c836d994d57a31684395a88 · ruwaq sergio · (3 killa ñawpaq) · tayta f5a343283 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

5 qillqakuna · +185 −0

diff --git a/recipes/incoming-kde/alsa-lib.toml b/recipes/incoming-kde/alsa-lib.toml
new file mode 100644
index 00000000..2a07f967
--- /dev/null
+++ b/recipes/incoming-kde/alsa-lib.toml
@@ -0,0 +1,25 @@
+# alsa-lib 1.2.14 — API de audio del kernel Linux (libasound.so). Campaña KDE (ADR 0011): sustrato de
+# PulseAudio → pulseaudio-qt → plasma-pa (el applet de volumen). Primer eslabón de la cadena de AUDIO real
+# (hasta ahora el lab sólo tenía libcanberra con backend NULL, sin reproducción).
+#
+# --disable-python: los bindings pyalsa exigen headers de python + no hacen falta. Sin deps externas.
+name    = "alsa-lib"
+version = "1.2.14"
+
+[source]
+tarball = "https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.14.tar.bz2"
+sha256  = "be9c88a0b3604367dd74167a2b754a35e142f670292ae47a2fdef27a2ee97a32"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static --disable-python'
+compile   = 'make -j"$(nproc)"'
+install   = "make DESTDIR=/out install && find /out -name '*.la' -delete"
+
+[deps]
+build = ["pkgconf"]
diff --git a/recipes/incoming-kde/kscreen.toml b/recipes/incoming-kde/kscreen.toml
new file mode 100644
index 00000000..b1425f2d
--- /dev/null
+++ b/recipes/incoming-kde/kscreen.toml
@@ -0,0 +1,54 @@
+# kscreen 6.7.2 — gestión de pantallas de Plasma (kscreen KDED daemon + KCM de monitores + OSD).
+# Campaña KDE (ADR 0011). Deps ya selladas: KF6Screen (libkscreen), Plasma/PlasmaQuick (libplasma),
+# LayerShellQt (layer-shell-qt), KCMUtils, Svg (ksvg). KF6ImageFormats es CONFIG opcional → se salta.
+name    = "kscreen"
+version = "6.7.2"
+
+[source]
+tarball = "https://download.kde.org/stable/plasma/6.7.2/kscreen-6.7.2.tar.xz"
+sha256  = "a67fbbb8c2fa2a875f29d056d72453d340143219b08062a932c7b1f1501add48"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = '''
+rm -rf po doc
+sed -i '/add_subdirectory(doc)/d' CMakeLists.txt
+sed -i '/kdoctools_install/d' CMakeLists.txt
+ZW="$PWD/.zwrap"; mkdir -p "$ZW"
+cat > "$ZW/cc"  <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig cc -mcpu=baseline $a
+W
+cat > "$ZW/cxx" <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig c++ -mcpu=baseline $a
+W
+chmod +x "$ZW/cc" "$ZW/cxx"
+cmake -B build -G Ninja -Wno-dev \
+  -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
+  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
+  -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_TESTING=OFF
+'''
+compile = "cmake --build build"
+install = "DESTDIR=/out cmake --install build"
+
+[deps]
+build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "qtsvg", "dbus", "extra-cmake-modules",
+  "qttools", "gettext-tiny", "mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative",
+  "wayland-protocols", "plasma-wayland-protocols", "qtwayland", "kitemmodels", "plasma5support",
+  "libkscreen", "libplasma", "layer-shell-qt", "ksvg", "kcmutils", "kdeclarative", "kirigami",
+  "kpackage", "plasma-activities",
+  "kconfig", "kdbusaddons", "ki18n", "kxmlgui", "kcrash",
+  "kcolorscheme", "kcompletion", "kcoreaddons", "kjobwidgets", "kservice", "kconfigwidgets",
+  "kguiaddons", "kitemviews", "kcodecs", "karchive", "kbookmarks", "sonnet", "attica", "kauth",
+  "icu4c", "kiconthemes", "kio", "kwindowsystem", "solid", "kglobalaccel", "kwidgetsaddons",
+  "zlib-shared", "libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes",
+  "libXi", "libxcb", "xcb-util", "xcb-util-keysyms", "xcb-util-wm", "xcb-util-image",
+  "xcb-util-renderutil"]
diff --git a/recipes/incoming-kde/libsndfile.toml b/recipes/incoming-kde/libsndfile.toml
new file mode 100644
index 00000000..2d2f4174
--- /dev/null
+++ b/recipes/incoming-kde/libsndfile.toml
@@ -0,0 +1,25 @@
+# libsndfile 1.2.2 — lectura/escritura de audio (libsndfile.so). Campaña KDE (ADR 0011): PulseAudio lo
+# exige para cargar muestras/sonidos del sistema.
+#
+# ENABLE_EXTERNAL_LIBS=OFF: apaga FLAC/Ogg/Vorbis/Opus (flac y opus no están sellados). Quedan WAV/AIFF/AU
+# nativos, que es lo que PulseAudio necesita para los sonidos del sistema. Evita la cadena flac+opus.
+name    = "libsndfile"
+version = "1.2.2"
+
+[source]
+tarball = "https://github.com/libsndfile/libsndfile/releases/download/1.2.2/libsndfile-1.2.2.tar.xz"
+sha256  = "3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static --disable-external-libs --disable-mpeg --disable-alsa'
+compile   = 'make -j"$(nproc)"'
+install   = "make DESTDIR=/out install && find /out -name '*.la' -delete"
+
+[deps]
+build = ["pkgconf", "python3"]
diff --git a/recipes/incoming-kde/powerdevil.toml b/recipes/incoming-kde/powerdevil.toml
new file mode 100644
index 00000000..2a5632e1
--- /dev/null
+++ b/recipes/incoming-kde/powerdevil.toml
@@ -0,0 +1,59 @@
+# powerdevil 6.7.2 — gestión de energía de Plasma (daemon org_kde_powerdevil + KCMs de batería/brillo).
+# Campaña KDE (ADR 0011). Todas sus deps ya estaban selladas: Plasma(libplasma), PlasmaActivities,
+# KF6Screen(libkscreen), LibKWorkspace(plasma-workspace), UDev(libudev-zero), XCB(RANDR/DPMS de libxcb),
+# KF6Runner(krunner), KF6IdleTime(kidletime).
+#
+# qcoro-shared (NO el qcoro canónico): powerdevil linkea QCoro dentro de .so ⇒ necesita el PIC.
+# KF6DocTools y DDCUtil (brillo de monitores externos por DDC/CI) son opcionales → se degradan.
+name    = "powerdevil"
+version = "6.7.2"
+
+[source]
+tarball = "https://download.kde.org/stable/plasma/6.7.2/powerdevil-6.7.2.tar.xz"
+sha256  = "0073d3dc4e0735eab2212e2c395c7e9fe6680146856421bb70eff42ebf88cc04"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = '''
+rm -rf po doc
+sed -i '/add_subdirectory(doc)/d' CMakeLists.txt
+sed -i '/kdoctools_install/d' CMakeLists.txt
+ZW="$PWD/.zwrap"; mkdir -p "$ZW"
+cat > "$ZW/cc"  <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig cc -mcpu=baseline $a
+W
+cat > "$ZW/cxx" <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig c++ -mcpu=baseline $a
+W
+chmod +x "$ZW/cc" "$ZW/cxx"
+cmake -B build -G Ninja -Wno-dev \
+  -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
+  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
+  -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_TESTING=OFF
+'''
+compile = "cmake --build build"
+install = "DESTDIR=/out cmake --install build"
+
+[deps]
+build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "qtsvg", "dbus", "extra-cmake-modules",
+  "qttools", "gettext-tiny", "mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative",
+  "wayland-protocols", "plasma-wayland-protocols", "qtwayland",
+  "qcoro-shared", "libplasma", "plasma-activities", "libkscreen", "plasma-workspace", "libudev-zero",
+  "ksvg", "kcmutils", "kdeclarative", "kirigami", "kirigami-addons", "kpackage", "krunner", "kidletime",
+  "kauth", "kconfig", "kcrash", "kdbusaddons", "ki18n", "kitemmodels", "kglobalaccel", "kio",
+  "knotifications", "solid", "kwindowsystem", "kxmlgui", "kwidgetsaddons",
+  "kcolorscheme", "kcompletion", "kcoreaddons", "kjobwidgets", "kservice", "kconfigwidgets",
+  "kguiaddons", "kitemviews", "kcodecs", "karchive", "kbookmarks", "sonnet", "attica",
+  "icu4c", "kiconthemes", "kwallet", "plasma-activities-stats", "kglobalacceld", "kstatusnotifieritem",
+  "zlib-shared", "libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes",
+  "libXi", "libxcb", "xcb-util", "xcb-util-keysyms", "xcb-util-wm", "xcb-util-image",
+  "xcb-util-renderutil"]
diff --git a/recipes/incoming-kde/speexdsp.toml b/recipes/incoming-kde/speexdsp.toml
new file mode 100644
index 00000000..07956aa6
--- /dev/null
+++ b/recipes/incoming-kde/speexdsp.toml
@@ -0,0 +1,22 @@
+# speexdsp 1.2.1 — procesamiento de señal (resampler, AEC) → libspeexdsp.so. Campaña KDE (ADR 0011):
+# PulseAudio lo usa para el remuestreo de audio (su resampler por defecto).
+name    = "speexdsp"
+version = "1.2.1"
+
+[source]
+tarball = "https://downloads.us.xiph.org/releases/speex/speexdsp-1.2.1.tar.gz"
+sha256  = "8c777343e4a6399569c72abc38a95b24db56882c83dbdb6c6424a5f4aeb54d3d"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static'
+compile   = 'make -j"$(nproc)"'
+install   = "make DESTDIR=/out install && find /out -name '*.la' -delete"
+
+[deps]
+build = ["pkgconf"]