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 1379Shell 117Rust 74Markdown 641915 Sutichaykuna

kde/Plasma: pipewire 1.2.7 — el SERVIDOR de audio real (+ destraba la cadena de spectacle)

pipewire (6d15a22c) → libpipewire-0.3.so.0 + libspa-* + daemon 'pipewire' + **'pipewire-pulse'** (habla
el protocolo PulseAudio, así que los clientes libpulse ya sellados le hablan) + tools (pw-cli/pw-play/
pw-record/pw-mon/pw-dump/...). Cierra el lado SERVIDOR del audio: hasta ahora sólo teníamos el CLIENTE
(libpulse con -Ddaemon=false).

Dos frentes lo necesitaban: (1) audio real de Plasma 6; (2) spectacle → kpipewire → pipewire.

Fuente del gitlab.freedesktop.org (como networkmanager/modemmanager). Recortado al core+SPA: sin bluez5
(arrastraría los códecs aptx/ldac/aac/opus), sin jack/v4l2/libcamera/gstreamer/ffmpeg/vulkan/roc/lv2/
avahi/x11/echo-cancel-webrtc/libusb/flatpak/snap; systemd/logind/selinux/rtkit off (no hay systemd).
alsa+sndfile+libpulse+dbus+udev enabled (las 4 ya selladas).

GOTCHA static-vs-shared (variante nueva del patrón): **sin ncurses a propósito**. Su única consumidora es
la tool pw-top (monitor de terminal), guardada por 'if ncurses_dep.found()'. El ncurses del catálogo es
static-only y su .pc arrastra '-static' al link ⇒ 'error: using shared libraries requires dynamic linking'
al enlazar pw-top contra libpipewire-0.3.so. Quitando la dep, meson saltea pw-top y el resto construye.
(Alternativa futura si se quiere pw-top: variante ncurses-shared.)

Próximo: ffmpeg → kpipewire → spectacle.

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

8207207251f28241736102bea01f072875ce1d19 · ruwaq sergio · (3 killa ñawpaq) · tayta abd733706 · kay commitpi sach'ata qhaway

Semántico sayk'uy

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

1 qillqakuna · +56 −0

diff --git a/recipes/incoming-kde/pipewire.toml b/recipes/incoming-kde/pipewire.toml
new file mode 100644
index 00000000..36b2d093
--- /dev/null
+++ b/recipes/incoming-kde/pipewire.toml
@@ -0,0 +1,56 @@
+# pipewire 1.2.7 — servidor de multimedia (libpipewire-0.3.so + libspa). Campaña KDE (ADR 0011). Dos
+# frentes lo necesitan:
+#   1. **spectacle**: linkea K::KPipeWireRecord incondicionalmente → kpipewire → pipewire.
+#   2. **audio real**: hoy sólo tenemos el CLIENTE libpulse; el servidor previsto por Plasma 6 es PipeWire.
+#      (Además Plasma usa pipewire para compartir pantalla/portales.)
+#
+# Fuente del gitlab.freedesktop.org (como networkmanager/modemmanager).
+# Recortado al core + SPA: sin bluez5 (cadena de códecs aptx/ldac/aac/opus enorme), sin jack/v4l2/
+# libcamera/gstreamer/ffmpeg/vulkan/roc/lv2/avahi/x11/echo-cancel-webrtc/libusb/flatpak/snap.
+# systemd/logind/selinux/rtkit off (no hay systemd acá). alsa=enabled + sndfile=enabled + libpulse=enabled
+# (el emulador pulse: deja que los clientes libpulse hablen con pipewire) — las 3 ya selladas.
+#
+# SIN ncurses a propósito: la única consumidora es la tool `pw-top` (monitor de terminal), guardada por
+# `if ncurses_dep.found()`. El ncurses del catálogo es static-only y su .pc arrastra `-static` al link ⇒
+# "error: using shared libraries requires dynamic linking" al enlazar pw-top contra libpipewire-0.3.so.
+# Quitando la dep, meson saltea pw-top y el resto construye.
+name    = "pipewire"
+version = "1.2.7"
+
+[source]
+tarball = "https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/1.2.7/pipewire-1.2.7.tar.gz"
+sha256  = "e75568ed18bcbe75e9779af57cb9cc256fd7ebfaadc12bb347a0717055d1d3a9"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = '''
+PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release \
+  -Ddefault_library=shared \
+  -Ddocs=disabled -Dman=disabled -Dexamples=disabled -Dtests=disabled \
+  -Dgstreamer=disabled -Dgstreamer-device-provider=disabled \
+  -Dsystemd=disabled -Dlogind=disabled -Dsystemd-system-service=disabled \
+  -Dsystemd-user-service=disabled -Dselinux=disabled -Dlegacy-rtkit=false \
+  -Dpipewire-jack=disabled -Dpipewire-v4l2=disabled -Djack=disabled -Dv4l2=disabled \
+  -Dlibcamera=disabled -Dbluez5=disabled -Dffmpeg=disabled -Dvulkan=disabled \
+  -Droc=disabled -Dlv2=disabled -Davahi=disabled -Dx11=disabled -Dx11-xfixes=disabled \
+  -Decho-cancel-webrtc=disabled -Dlibusb=disabled -Dflatpak=disabled -Dsnap=disabled \
+  -Dlibmysofa=disabled -Dsdl2=disabled -Dopus=disabled -Dlibffado=disabled -Dcompress-offload=disabled \
+  -Dlibcanberra=disabled -Dgsettings=disabled -Dreadline=disabled -Draop=disabled -Davb=disabled \
+  -Dsession-managers=[] \
+  -Dalsa=enabled -Dsndfile=enabled -Dlibpulse=enabled -Ddbus=enabled -Dudev=enabled \
+  -Dpipewire-alsa=disabled \
+  -Dspa-plugins=enabled -Daudioconvert=enabled -Daudiomixer=enabled -Dcontrol=enabled \
+  -Dvideoconvert=enabled -Dsupport=enabled
+'''
+compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
+install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
+
+[deps]
+build = ["meson", "samurai", "python3", "pkgconf", "dbus", "expat", "alsa-lib", "libsndfile",
+  "pulseaudio", "glib-shared", "pcre2-shared", "libffi", "libudev-zero", "zlib-shared",
+  "gettext-tiny"]