Created
February 11, 2026 11:34
-
-
Save hholst80/573f3116b0535b9d02b6dfd60a254b8c to your computer and use it in GitHub Desktop.
River 0.4.0-dev build log - updating from 0.3.13 with dependency chain rebuild
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # River 0.4.0-dev Build Log | |
| # Date: 2026-02-11 | |
| # Updating river from 0.3.13 (river-classic) to 0.4.0-dev (main branch) | |
| ## Initial State | |
| Current forge.yaml source: river-classic v0.3.13 | |
| Installed binary version: 0.4.0-dev.335+a5a9dce (old dev build) | |
| Target: latest main branch commit | |
| ## Step 1: Find latest river main branch commit | |
| No official 0.4.x releases exist yet. river-classic is a fork maintaining 0.3.x. | |
| The main river project at codeberg.org/river/river has 0.4.0-dev on main branch. | |
| Latest commit on main: 1a934be392aec5eef4fadef298010468eeeb2b54 (2026-02-10) | |
| Commit message: "layer-shell: ensure non_exclusive_area sent on x/y change" | |
| Author: Isaac Freund | |
| build.zig.zon version: "0.4.0-dev" | |
| ## Step 2: Update river forge.yaml | |
| Changed source from: | |
| https://codeberg.org/river/river-classic/releases/download/v0.3.13/river-classic-0.3.13.tar.gz | |
| sha256:e4a6569ae5097bba1f22234b2081fdc962fcebb991df995c516be9d9bbff0ac2 | |
| To: | |
| https://codeberg.org/river/river/archive/1a934be392aec5eef4fadef298010468eeeb2b54.tar.gz | |
| sha256:27f6d1ed25aa438a29283fffffcf321c9e23487fe7a8f85f85fa75dac12ff43f | |
| ## Step 3: First build attempt — FAILED | |
| Error: unable to find dynamic system library 'wlroots-0.19' | |
| Cause: river 0.4.0-dev requires wlroots 0.19, but container image has wlroots 0.18. | |
| Note: wlroots forge.yaml already pointed to 0.19.2 but the container image was stale. | |
| ## Step 4: Rebuild wayland-protocols — FAILED | |
| Error: Build-time dependency wayland-scanner found: NO | |
| Dependency wayland-protocols found: NO found 1.36 but need: '>=1.41' | |
| Cause: wlroots 0.19.2 requires wayland-protocols >= 1.41. | |
| wayland-protocols forge.yaml already had 1.41 but container image was stale. | |
| Also, wayland-protocols 1.41 needs wayland-scanner (from wayland package) as build dep. | |
| Fix: Added `wayland` to wayland-protocols makedepends. | |
| ## Step 5: Rebuild wayland-protocols — SUCCESS | |
| wayland-protocols 1.41 built and published. | |
| ## Step 6: Rebuild wlroots — FAILED (attempt 1) | |
| Error: Dependency "egl" not found | |
| Cause: wlroots 0.19.2 requires EGL, which comes from the libglvnd package. | |
| Fix: Added `libglvnd` to wlroots makedepends. | |
| ## Step 7: Rebuild wlroots — FAILED (attempt 2) | |
| Error: xwayland/meson.build:23:11: ERROR: Neither a subproject directory nor a xserver.wrap file was found. | |
| Cause: -Dxwayland=enabled was set but xwayland is not available (Ironforge is Wayland-only). | |
| Fix: Changed -Dxwayland=enabled to -Dxwayland=disabled in wlroots forge.yaml. | |
| ## Step 8: Rebuild wlroots — SUCCESS | |
| wlroots 0.19.2 built and published. | |
| Summary: disabled libliftoff (optional, not available), disabled xwayland. | |
| ## Step 9: Build river — FAILED (attempt 2) | |
| Error: 'wlr/util/log.h' file not found | |
| 'wlr/config.h' file not found | |
| 'wlr/version.h' file not found | |
| libinput_device_config_3fg_drag_get_finger_count undefined | |
| LIBINPUT_CONFIG_DRAG_LOCK_ENABLED_TIMEOUT undefined | |
| Cause: | |
| 1. wlroots 0.19 installs headers to /usr/include/wlroots-0.19/wlr/ instead of /usr/include/wlr/ | |
| The zig build system wasn't propagating the pkg-config include path to C source files. | |
| 2. River uses newer libinput APIs not in 1.26.2. | |
| Fix 1: Added patch step to symlink /usr/include/wlr -> /usr/include/wlroots-0.19/wlr | |
| Fix 2: Added libglvnd to river makedepends | |
| Fix 3: Update libinput (next step) | |
| ## Step 10: Update and rebuild libinput | |
| Updated from 1.26.2 to 1.30.1. | |
| Source: https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.30.1/libinput-1.30.1.tar.bz2 | |
| Checksum: sha256:c5169568f337c4a3bda927c42afef3a9d4c891e48a405cba39d57cb4631b9fb0 | |
| libinput 1.30.1 built and published — SUCCESS. | |
| ## Step 11: Build river — FAILED (attempt 3) | |
| Error: undefined symbol: xkb_keymap_mod_get_mask | |
| undefined symbol: xkb_keymap_get_as_string2 | |
| Cause: River uses newer xkbcommon APIs not in 1.7.0. | |
| ## Step 12: Update and rebuild xkbcommon — FAILED (attempt 1) | |
| Updated from 1.7.0 to 1.13.1. | |
| Source: https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/xkbcommon-1.13.1.tar.gz | |
| Checksum: sha256:aeb951964c2f7ecc08174cb5517962d157595e9e3f38fc4a130b91dc2f9fec18 | |
| Error: pkgconfig.generate keyword argument "variables" empty variable value | |
| Cause: xkeyboard-config pkg-config not available, causing empty extension directory | |
| paths in pkgconfig.generate variables. | |
| Fix: Added explicit meson options: | |
| -Dxkb-config-root=/usr/share/X11/xkb | |
| -Dxkb-config-extra-path=/etc/xkb | |
| -Dxkb-config-unversioned-extensions-path=/usr/share/X11/xkb.d | |
| -Dxkb-config-versioned-extensions-path=/usr/share/X11/xkb.d | |
| ## Step 13: Rebuild xkbcommon — SUCCESS | |
| xkbcommon 1.13.1 built and published. | |
| ## Step 14: Build river — SUCCESS | |
| River 0.4.0-dev built and published from commit 1a934be. | |
| Binary: ELF 64-bit LSB pie executable, x86-64, dynamically linked, stripped (718 KB) | |
| Man pages: river.1 | |
| ## Summary of all package changes | |
| ### river (pkg/river/forge.yaml) | |
| - Source: river-classic 0.3.13 -> river main 1a934be (0.4.0-dev) | |
| - Added makedepend: libglvnd | |
| - Added patch: ln -s wlroots-0.19/wlr /usr/include/wlr | |
| ### wayland-protocols (pkg/wayland-protocols/forge.yaml) | |
| - Added makedepend: wayland (for wayland-scanner) | |
| ### wlroots (pkg/wlroots/forge.yaml) | |
| - Added makedepend: libglvnd (for EGL) | |
| - Changed: -Dxwayland=enabled -> -Dxwayland=disabled | |
| ### libinput (pkg/libinput/forge.yaml) | |
| - Updated: 1.26.2 -> 1.30.1 | |
| ### xkbcommon (pkg/xkbcommon/forge.yaml) | |
| - Updated: 1.7.0 -> 1.13.1 | |
| - Source URL changed to GitHub archive | |
| - Added meson options for xkb config paths | |
| ### Dependency chain rebuilt | |
| wayland-protocols 1.41 -> wlroots 0.19.2 -> river 0.4.0-dev | |
| libinput 1.30.1 -> river 0.4.0-dev | |
| xkbcommon 1.13.1 -> wlroots 0.19.2 -> river 0.4.0-dev |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment