kde/Plasma: blockers de kwin (Vulkan/KNightTime/libinput) + patch Canberra

- vulkan-headers + vulkan-loader 1.4.350.1 (Vulkan::Vulkan; WSI xcb/xlib ON, xrandr OFF).
- qtpositioning + kholidays(flex/bison) + knighttime (cadena KNightTime TYPE REQUIRED de kwin).
- libinput 1.28.1 variante incoming-kde (kwin pide >=1.28; canónica 1.27.1).
- kwin patch Canberra REQUIRED→opcional + systembell condicional (evita stack audio; deuda diferida).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-12 19:56:58 -04:00
co-authored by Claude Opus 4.8
parent e80a80e6f6
commit 4b1b8c4af4
8 changed files with 245 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# kholidays 6.27.0 — KDE Frameworks 6 (cálculo de festivos/feriados, KF6::Holidays). Blocker de knighttime
# (find_package(KF6 ... Holidays)), que es blocker de kwin. Campaña KDE (ADR 0011). Patrón KF6: dynamic,
# wrapper zig que filtra -Wl,--fatal-warnings, ECM + qttools.
# CMakeLists: find_package(Qt6 Core Qml REQUIRED) + FLEX + BISON (>=3.3.2) REQUIRED (parser de reglas de
# festivos). NO usa ki18n (sólo ecm_install_po_files_as_qm vía lrelease de qttools).
name = "kholidays"
version = "6.27.0"
[source]
tarball = "https://download.kde.org/stable/frameworks/6.27/kholidays-6.27.0.tar.xz"
sha256 = "84ce2acd5565a9510d74945ea2311f8c099cb031393255d1c8d399665d57b914"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = '''
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 -DBUILD_PYTHON_BINDINGS=OFF
'''
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
[deps]
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "qtdeclarative", "dbus", "extra-cmake-modules", "qttools", "mesa", "libdrm", "libxkbcommon", "wayland", "flex", "bison"]
+42
View File
@@ -0,0 +1,42 @@
# knighttime 6.7.2 — helpers de KDE Plasma para el ciclo día/noche (KF6::KNightTime). Blocker directo de kwin
# (find_package(KNightTime REQUIRED)). Campaña KDE (ADR 0011). Patrón KF6: dynamic, wrapper zig, ECM + qttools.
# CMakeLists: Qt6 Core/Gui/DBus/Positioning + KF6 Config/CoreAddons/DBusAddons/Holidays/I18n. ki18n_install(po)
# ⇒ ki18n → gettext-tiny. Todo su cierre KF6 sellado salvo kholidays y qtpositioning (esta misma tanda).
name = "knighttime"
version = "6.7.2"
[source]
tarball = "https://download.kde.org/stable/plasma/6.7.2/knighttime-6.7.2.tar.xz"
sha256 = "3d26c7fe04512ab6367bfb2b092f296dbfd8331dedd576ab2cf30d840be6830e"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = '''
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 -DBUILD_PYTHON_BINDINGS=OFF
'''
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
[deps]
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "qtdeclarative", "dbus", "extra-cmake-modules", "qttools", "mesa", "libdrm", "libxkbcommon", "wayland", "gettext-tiny", "qtpositioning", "kholidays", "ki18n", "kconfig", "kcoreaddons", "kdbusaddons"]
@@ -0,0 +1,28 @@
kwin 6.7.2 hace find_package(Canberra REQUIRED) (línea 235) para el plugin systembell (campana de
audio). libcanberra = stack de audio alsa/pulse/vorbis (pesado, no soberano). Este patch vuelve
Canberra OPCIONAL y hace condicional el subdir systembell (sólo si Canberra_FOUND). kwin construye
sin la campana de audio (deuda audio diferida, misma que knotifications).
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -232,7 +232,7 @@
endif()
-find_package(Canberra REQUIRED)
+find_package(Canberra)
if (KWIN_BUILD_X11)
pkg_check_modules(XKBX11 IMPORTED_TARGET xkbcommon-x11 REQUIRED)
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
--- a/src/plugins/CMakeLists.txt
+++ b/src/plugins/CMakeLists.txt
@@ -103,7 +103,9 @@ add_subdirectory(stickykeys)
add_subdirectory(synchronizeskipswitcher)
-add_subdirectory(systembell)
+if (Canberra_FOUND)
+ add_subdirectory(systembell)
+endif()
add_subdirectory(thumbnailaside)
add_subdirectory(tileseditor)
+1
View File
@@ -26,6 +26,7 @@ version = "6.7.2"
[source]
tarball = "https://download.kde.org/stable/plasma/6.7.2/kwin-6.7.2.tar.xz"
sha256 = "6161a188f66ffac0a330dcf82dec9ecc3e53451b7bddd5d18fa00b1e9aada73b"
patches = ["kwin-canberra-optional.patch"]
[build]
compiler = "zig-cc"
+24
View File
@@ -0,0 +1,24 @@
# libinput 1.28.1 — VARIANTE bump para la campaña KDE (ADR 0011): kwin 6.7.2 exige libinput >= 1.28
# (la canónica recipes/libinput.toml está en 1.27.1). Override, mismo name="libinput". Idéntica a la
# canónica salvo version+sha256 (meson_options y dependency() sin cambios: libudev, mtdev>=1.1, libevdev).
# Recorte: sin libwacom, sin debug-gui (GTK), sin tests ni docs. Deps ya selladas.
name = "libinput"
version = "1.28.1"
[source]
tarball = "https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.28.1/libinput-1.28.1.tar.gz"
sha256 = "a13f8c9a7d93df3c85c66afd135f0296701d8d32f911991b7aa4273fdd6a42a3"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
zig_version = "0.13.0"
[build.phases]
configure = "meson setup output --prefix=/usr --buildtype=release -Dlibwacom=false -Ddebug-gui=false -Dtests=false -Ddocumentation=false"
compile = "ninja -C output"
install = "DESTDIR=/out ninja -C output install"
[deps]
build = ["meson", "samurai", "python3", "pkgconf", "libudev-zero", "libevdev", "mtdev"]
+37
View File
@@ -0,0 +1,37 @@
# qt6-qtpositioning 6.11.1 — módulo Qt Positioning (QtPositioning). Blocker de knighttime (Qt6::Positioning),
# que a su vez es blocker de kwin (find_package(KNightTime REQUIRED)). Campaña KDE (ADR 0011). Patrón Qt del
# gate H-Qt (dinámico, wrappers zig, Qt6 sellado vía PREFIX_PATH). qtserialport es OPCIONAL (no sellado, se
# omite → sólo desactiva backends serie de GPS). Quick/Qml opcionales via qtdeclarative.
name = "qt6-qtpositioning"
version = "6.11.1"
[source]
tarball = "https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtpositioning-everywhere-src-6.11.1.tar.xz"
sha256 = "d5e6b91801ae286e7630016caea3bdc5e1978b4291d6741d0d64c125650f78f5"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = '''
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
printf '#!/bin/sh\nexec /opt/zig/zig cc -mcpu=baseline "$@"\n' > "$ZW/cc"
printf '#!/bin/sh\nexec /opt/zig/zig c++ -mcpu=baseline "$@"\n' > "$ZW/cxx"
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_INTERPROCEDURAL_OPTIMIZATION=OFF -DCMAKE_PREFIX_PATH=/usr \
-DINSTALL_BINDIR=lib/qt6/bin -DINSTALL_PUBLICBINDIR=bin -DINSTALL_LIBEXECDIR=lib/qt6/libexec \
-DINSTALL_ARCHDATADIR=lib/qt6 -DINSTALL_DATADIR=share/qt6 -DINSTALL_INCLUDEDIR=include/qt6 \
-DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \
-DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF
'''
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
[deps]
build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "qtdeclarative", "mesa", "libdrm", "libxkbcommon", "wayland"]
+33
View File
@@ -0,0 +1,33 @@
# vulkan-headers 1.4.350.1 — cabeceras de la API Vulkan + config CMake Vulkan::Headers. Blocker de kwin
# (find_package(Vulkan REQUIRED) → Vulkan::Vulkan). Campaña KDE (ADR 0011), cadena Vulkan. Headers-only:
# INTERFACE library, no compila nada, sólo instala include/vulkan + los .cmake. Versión debe casar con
# vulkan-loader. Tests y el módulo C++20 (Vulkan-Hpp) apagados.
name = "vulkan-headers"
version = "1.4.350.1"
[source]
tarball = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.350.1.tar.gz"
sha256 = "6d1bb65e49520344cc0a48af3dc02e993781efff14c7ebdcb8ae9fa23ddf7e83"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
zig_version = "0.13.0"
[build.phases]
configure = '''
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
printf '#!/bin/sh\nexec /opt/zig/zig cc -mcpu=baseline "$@"\n' > "$ZW/cc"
printf '#!/bin/sh\nexec /opt/zig/zig c++ -mcpu=baseline "$@"\n' > "$ZW/cxx"
chmod +x "$ZW/cc" "$ZW/cxx"
cmake -B build -G Ninja -Wno-dev \
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \
-DVULKAN_HEADERS_ENABLE_TESTS=OFF -DVULKAN_HEADERS_ENABLE_MODULE=OFF
'''
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
[deps]
build = ["cmake", "samurai", "python3", "pkgconf"]
+37
View File
@@ -0,0 +1,37 @@
# vulkan-loader 1.4.350.1 — ICD loader de Vulkan (libvulkan.so.1 + config CMake Vulkan::Loader/Vulkan::Vulkan).
# Blocker de kwin (find_package(Vulkan REQUIRED)). Campaña KDE (ADR 0011). Versión casada con vulkan-headers.
# CMakeLists: find_package(VulkanHeaders CONFIG) + PkgConfig REQUIRED para xcb (WSI_XCB) y x11 (WSI_XLIB).
# WSI_WAYLAND sólo añade un -D (no linkea). WSI_XLIB_XRANDR default ON exige xrandr.pc → libXrandr NO está
# sellado ⇒ lo apago (no es esencial para libvulkan.so). Python3 sólo si LOADER_CODEGEN (default OFF).
name = "vulkan-loader"
version = "1.4.350.1"
[source]
tarball = "https://github.com/KhronosGroup/Vulkan-Loader/archive/refs/tags/vulkan-sdk-1.4.350.1.tar.gz"
sha256 = "602984a71000981e25e4feb419e6cdd70b18ffe2b8004f60f591706027bca468"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
zig_version = "0.13.0"
[build.phases]
configure = '''
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
printf '#!/bin/sh\nexec /opt/zig/zig cc -mcpu=baseline "$@"\n' > "$ZW/cc"
printf '#!/bin/sh\nexec /opt/zig/zig c++ -mcpu=baseline "$@"\n' > "$ZW/cxx"
chmod +x "$ZW/cc" "$ZW/cxx"
PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig \
cmake -B build -G Ninja -Wno-dev \
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
-DBUILD_TESTS=OFF -DUPDATE_DEPS=OFF \
-DBUILD_WSI_XCB_SUPPORT=ON -DBUILD_WSI_XLIB_SUPPORT=ON \
-DBUILD_WSI_XLIB_XRANDR_SUPPORT=OFF -DBUILD_WSI_WAYLAND_SUPPORT=ON
'''
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
[deps]
build = ["cmake", "samurai", "python3", "pkgconf", "vulkan-headers", "wayland", "libxcb", "libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes", "libXi"]