GLDoze DRM/KMS Wayland installation
====================================

This host must run the native wlroots Wayland compositor from a bare text
virtual terminal. Do not install the generic/X11-only gldoze_desktop binary
over /usr/local/bin/gldoze_desktop.

Required CachyOS/Arch packages
-----------------------------

Install the host development components with:

    sudo pacman -S --needed wlroots0.20 seatd libliftoff wayland-protocols xcb-util-errors

`seatd` supplies libseat. A logged-in systemd-logind session may provide the
seat without a separate seatd daemon; verify the active seat before launch.
The checkout currently probes wlroots-0.18 (or an unversioned wlroots pkg-config
file), while this host repository provides wlroots0.20. The CMake detection and
source API compatibility must be validated before deploying the resulting
binary. Do not create an ABI-major symlink as a substitute.

Wayland/CEF build and payload validation
----------------------------------------

Keep the existing generic `build/` tree untouched. Configure a separate
Wayland build after the packages above are installed, using the pinned CEF
distribution already used by `build-cef-codecs`:

    cd /mnt/main/projects/gldoze
    cmake -S . -B build-wayland-cef -G Ninja \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DGLDOZE_USE_PKGCONFIG_DEPS=ON \
      -DGLDOZE_ENABLE_WAYLAND=ON \
      -DGLDOZE_ENABLE_X11=ON \
      -DGLDOZE_ENABLE_CEF_BROWSER=ON \
      -DCEF_ROOT=/mnt/main/projects/gldoze-cef-codecs/chromium_git/chromium/src/cef/binary_distrib/gldoze_cef_150.0.11+gb887805+chromium-150.0.7871.115_linux64_proprietary_codecs_minimal
    cmake --build build-wayland-cef --target gldoze_desktop gldoze_cef_subprocess gldoze_mesh_splitter gldoze_asset_library -j20
    bash scripts/package_gldoze_desktop.sh build-wayland-cef dist/gldoze-desktop dist/gldoze-desktop.tar.zst
    bash ./install.sh --check --payload dist/gldoze-desktop

Install only from a stopped desktop TTY:

    sudo bash ./install.sh --payload /mnt/main/projects/gldoze/dist/gldoze-desktop --prefix /usr/local

Before launch, verify that the build, staged, and installed desktop hashes
match exactly:

    sha256sum build-wayland-cef/gldoze_desktop \
      dist/gldoze-desktop/bin/gldoze_desktop \
      /usr/local/bin/gldoze_desktop
    ldd /usr/local/bin/gldoze_desktop | grep -E 'wlroots|libseat|libliftoff'

Launch from the bare VT in the foreground, with no DISPLAY or WAYLAND_DISPLAY
from a parent session:

    /home/johnny/Scripts/start.sh

Current recovery status (2026-08-21)
------------------------------------

The installed binary that was present before this recovery was built from
`build/` with `GLDOZE_ENABLE_WAYLAND=OFF`, `GLDOZE_ENABLE_X11=ON`, and CEF
disabled. It was not a valid binary for `start.sh` and the failed stopped
instance was removed. The package installation is still pending interactive
sudo authentication; no system packages, Wayland build, or privileged install
has been claimed from this non-interactive session.
