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>
This commit is contained in:
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
Reference in New Issue
Block a user