Etapa G: mirada-compositor CONSTRUIDO — stack de sesión gráfica COMPLETO
mirada-compositor sellado (store/d8fd9ca…): el compositor Wayland teselante sobre smithay 0.7, que maneja DRM/GBM/EGL/libseat/libinput directo y hospeda a mirada-greeter como cliente. Compila ~255 crates incl. smithay para musl; PIE dinámico. Cierra la cadena de sesión gráfica de tawasuyu sobre hammer: Mesa(iris) + wayland + stack de entrada + compositor + greeter, todo sellado. smithay (default features) enlaza por -sys: drm-sys→libdrm, gbm-sys→mesa, libseat-sys→seatd, input-sys→libinput, libudev-sys→libudev-zero, + xkbcommon→libxkbcommon y pixman (link directo). Dos libs nuevas para cerrar el link: - libxkbcommon 1.7.0 (meson, sin x11/wayland/docs/tools): smithay la enlaza, no sólo dlopen. - pixman 0.44.2 (meson, sin tests/demos): composición CPU de smithay. foreign-av NO enlaza ffmpeg (spawnea el binario en runtime) ⇒ no hizo falta construir ffmpeg. NEEDED del binario: libgbm/libseat/libudev/libinput/libpixman-1/libxkbcommon + musl (libdrm/EGL/ wayland se dlopen-ean). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -93,6 +93,7 @@ Modeladas sobre `recipes/arje-zero.toml` (fuente = monorepo tawasuyu a commit fi
|
|||||||
| `arje-splash` | `/usr/lib/arje/arje-splash` | static-musl | sólo DRM dumb-buffer (sin Mesa) |
|
| `arje-splash` | `/usr/lib/arje/arje-splash` | static-musl | sólo DRM dumb-buffer (sin Mesa) |
|
||||||
| `net-bring-up` | `/usr/lib/arje/net-bring-up` | static-musl | ninguna |
|
| `net-bring-up` | `/usr/lib/arje/net-bring-up` | static-musl | ninguna |
|
||||||
| `mirada-greeter` | `/usr/bin/mirada-greeter` | **dynamic** 🟢 **built** | dlopen: EGL/GLES/GBM (mesa) + wayland; link: libpam |
|
| `mirada-greeter` | `/usr/bin/mirada-greeter` | **dynamic** 🟢 **built** | dlopen: EGL/GLES/GBM (mesa) + wayland; link: libpam |
|
||||||
|
| `mirada-compositor` | `/usr/bin/mirada-compositor` | **dynamic** 🟢 **built** | link: gbm/seat/udev/input/pixman/xkbcommon; dlopen: EGL/wayland/drm |
|
||||||
|
|
||||||
`mirada-greeter` 🟢 **CONSTRUIDO Y SELLADO** (Cargo, 314 crates incl. todo el stack wgpu/winit/llimphi
|
`mirada-greeter` 🟢 **CONSTRUIDO Y SELLADO** (Cargo, 314 crates incl. todo el stack wgpu/winit/llimphi
|
||||||
para musl; PIE dinámico). DT_NEEDED real = sólo `libpam.so.0` + musl; **EGL/GLES/GBM/wayland/iris se
|
para musl; PIE dinámico). DT_NEEDED real = sólo `libpam.so.0` + musl; **EGL/GLES/GBM/wayland/iris se
|
||||||
@@ -106,6 +107,20 @@ la receta:
|
|||||||
- **PAM**: auth-core → `pam`/`pam-sys` hace bindgen sobre `security/pam_appl.h` ⇒ nueva receta
|
- **PAM**: auth-core → `pam`/`pam-sys` hace bindgen sobre `security/pam_appl.h` ⇒ nueva receta
|
||||||
`linux-pam` 1.6.1 (libpam.so + headers, build limpio en musl con gcc de Alpine).
|
`linux-pam` 1.6.1 (libpam.so + headers, build limpio en musl con gcc de Alpine).
|
||||||
|
|
||||||
|
`mirada-compositor` 🟢 **CONSTRUIDO Y SELLADO** (Cargo, ~255 crates incl. smithay 0.7 para musl; PIE
|
||||||
|
dinámico). Es el compositor que maneja DRM/GBM/EGL/libseat/libinput directo y dentro del cual corre
|
||||||
|
`mirada-greeter` como cliente. smithay (default features) enlaza `drm-sys`→libdrm, `gbm-sys`→mesa,
|
||||||
|
`libseat-sys`→seatd, `input-sys`→libinput, `libudev-sys`→**libudev-zero** (libudev sin udevd, encaja
|
||||||
|
con el no-systemd de arje), + `xkbcommon`→**libxkbcommon** y **pixman** (link, no dlopen). Por eso el
|
||||||
|
**stack de entrada** nuevo: `libinput` + `libevdev` + `mtdev` (config.sub viejo parcheado al moderno) +
|
||||||
|
`libudev-zero` + `libxkbcommon` + `pixman`. `foreign-av` NO enlaza ffmpeg (spawnea el binario en
|
||||||
|
runtime) ⇒ no hizo falta construir ffmpeg. NEEDED del binario: libgbm/libseat/libudev/libinput/
|
||||||
|
libpixman-1/libxkbcommon + musl.
|
||||||
|
|
||||||
|
**El stack de sesión gráfica está COMPLETO**: Mesa(iris) + wayland + el stack de entrada +
|
||||||
|
mirada-compositor + mirada-greeter, todo sellado. Falta el ensamblado del rootfs (todas las `.so` +
|
||||||
|
config/módulos PAM + datos xkb de xkeyboard-config) y arrancar la sesión.
|
||||||
|
|
||||||
Los otros dos (arje-splash, net-bring-up) no dependen de Mesa.
|
Los otros dos (arje-splash, net-bring-up) no dependen de Mesa.
|
||||||
|
|
||||||
## Hecho cuando
|
## Hecho cuando
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# libxkbcommon 1.7.0 — manejo de keymaps XKB. La enlaza mirada-compositor (smithay, crate xkbcommon).
|
||||||
|
# Proyecto meson. Recorte: sin X11, sin docs, sin las utilidades wayland, sin xkbregistry (libxml2),
|
||||||
|
# sin tools. Sólo libxkbcommon core. bison para el parser de keymaps.
|
||||||
|
# (En runtime usa los datos de xkeyboard-config; no es dep de build.)
|
||||||
|
name = "libxkbcommon"
|
||||||
|
version = "1.7.0"
|
||||||
|
|
||||||
|
[source]
|
||||||
|
tarball = "https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/xkbcommon-1.7.0.tar.gz"
|
||||||
|
sha256 = "20d5e40dabd927f7a7f4342bebb1e8c7a59241283c978b800ae3bf60394eabc4"
|
||||||
|
|
||||||
|
[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 -Denable-x11=false -Denable-docs=false -Denable-wayland=false -Denable-xkbregistry=false -Denable-tools=false"
|
||||||
|
compile = "ninja -C output"
|
||||||
|
install = "DESTDIR=/out ninja -C output install"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
build = ["meson", "samurai", "python3", "pkgconf", "bison"]
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# mirada-compositor — el compositor Wayland teselante de mirada (sobre smithay). Es el Cuerpo que
|
||||||
|
# maneja DRM/GBM/EGL/libseat/libinput directo y dentro del cual corre `mirada-greeter` como cliente.
|
||||||
|
# Cierra la cadena de sesión gráfica de tawasuyu.
|
||||||
|
#
|
||||||
|
# Receta Cargo (patrón arje-zero/mirada-greeter): monorepo tawasuyu al commit fijado 9967b02c (reusa
|
||||||
|
# el árbol vendoreado). `-p mirada-compositor`, link DINÁMICO (smithay enlaza libdrm/gbm/seat/input
|
||||||
|
# + dlopen de EGL/wayland/xkbcommon).
|
||||||
|
#
|
||||||
|
# Sin la fase custom del greeter: mirada-compositor NO usa llimphi-ui ⇒ no arrastra accesskit/atspi
|
||||||
|
# (nada de LOCKSTEP_XML_PATH). auth-core → PAM sí (linux-pam). `foreign-av` NO enlaza ffmpeg: spawnea
|
||||||
|
# el BINARIO ffmpeg en runtime (sólo si wallpaper=video), así que no hace falta construir ffmpeg.
|
||||||
|
#
|
||||||
|
# Build-deps que smithay (default features) enlaza por -sys/pkg-config: drm-sys→libdrm, gbm-sys→mesa,
|
||||||
|
# libseat-sys→seatd, input-sys→libinput, libudev-sys→libudev-zero. wayland-server.pc → libffi/expat.
|
||||||
|
name = "mirada-compositor"
|
||||||
|
version = "0.0.1"
|
||||||
|
|
||||||
|
[source]
|
||||||
|
repo = "gitea@git.tawasuyu.net:tawasuyu/tawasuyu.git"
|
||||||
|
commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
compiler = "zig-cc"
|
||||||
|
target = "x86_64-linux-musl"
|
||||||
|
link = "dynamic"
|
||||||
|
flags = ["-p", "mirada-compositor"]
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
# libxkbcommon (smithay lo enlaza, no sólo dlopen) + pixman (composición CPU de smithay).
|
||||||
|
build = ["mesa", "wayland", "wayland-protocols", "libdrm", "seatd", "linux-pam", "libinput", "libudev-zero", "libevdev", "mtdev", "libxkbcommon", "pixman", "expat", "zlib", "zstd", "libffi", "pkgconf"]
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# pixman 0.44.2 — rasterizado de píxeles por software. La enlaza mirada-compositor (smithay lo usa
|
||||||
|
# para composición/recorte en CPU). Proyecto meson, sin deps externas. Sin tests/demos/gtk.
|
||||||
|
name = "pixman"
|
||||||
|
version = "0.44.2"
|
||||||
|
|
||||||
|
[source]
|
||||||
|
tarball = "https://gitlab.freedesktop.org/pixman/pixman/-/archive/pixman-0.44.2/pixman-pixman-0.44.2.tar.gz"
|
||||||
|
sha256 = "1ac33e229549f6341a677d530d1944431139d222ecad1554818788ae9ef32f6f"
|
||||||
|
|
||||||
|
[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 -Dtests=disabled -Ddemos=disabled -Dgtk=disabled"
|
||||||
|
compile = "ninja -C output"
|
||||||
|
install = "DESTDIR=/out ninja -C output install"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
build = ["meson", "samurai", "python3", "pkgconf"]
|
||||||
Reference in New Issue
Block a user