f31522130f
Build system (5 gaps hardened): - COOKBOOK_OFFLINE defaults to true (fork-mode) - normalize_patch handles diff -ruN format - New 'repo validate-patches' command (25/25 relibc patches) - 14 patched Qt/Wayland/display recipes added to protected list - relibc archive regenerated with current patch chain Boot fixes (fixable): - Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset) - D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped) - redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped) - daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch) - udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async) - relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs - greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait) - greeter-ui: built and linked (header guard unification, sem_compat stubs removed) - mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps - greeter config: removed stale keymapd dependency from display/greeter services - prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified Unfixable (diagnosed, upstream): - i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort - kded6/greeter-ui: page fault 0x8 — Qt library null deref - Thread panics fd != -1 — Rust std library on Redox - DHCP timeout / eth0 MAC — QEMU user-mode networking - hwrngd/thermald — no hardware RNG/thermal in VM - live preload allocation — BIOS memory fragmentation, continues on demand
This example shows how to use the low-level server buffer extension. This version of Qt also provides a texture sharing extension that provides more functionality and convenience for sharing graphical assets with Qt Quick clients: see the texture-sharing example. Compile up both compositor and client. If you have the dmabuf-server buffer integration (and you are running Mesa) then start the compositor with: $ QT_WAYLAND_SERVER_BUFFER_INTEGRATION=dmabuf-server ./compositor Note: if you are running a compositor on an X11 desktop, you also need to set QT_XCB_GL_INTEGRATION=xcb_egl as usual. The compositor broadcasts the name of the server buffer integration to all clients through the hardware integration extension. Therefore, all you need to do is to start the client with $ ./server-buffer-cpp-client -platform wayland The client will show all the buffers shared by the compositor. For testing on desktop, there is also a shared memory based server buffer integration that works with any graphics hardware: $ QT_WAYLAND_SERVER_BUFFER_INTEGRATION=shm-emulation-server QT_XCB_GL_INTEGRATION=xcb_egl ./compositor Note: the shm-emulation-server integration does not actually share graphics buffers, so it will not give any graphics memory savings. It is intended solely for testing during development and should never be used in production.