Skip to content

wlr: retarget to wlroots 0.20.2 - #3

Merged
DeedleFake merged 7 commits into
cifrom
wlroots-0.20
Sep 28, 2026
Merged

DeedleFake merged 7 commits into
cifrom
wlroots-0.20

Conversation

@DeedleFake

@DeedleFake DeedleFake commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Coder created this PR.

Stacks on the CI PR (ci ← base). Bumps .github/wlroots-version to 0.20.2 so Actions builds wlroots from that tag (wlroots-0.20.pc).

Why

Bind against wlroots 0.20.2 so compositors can use the current render-pass / output-state API. The old attach-render + matrix path is gone upstream.

Scope

Big-bang A on deedles.dev/wlr only (kawa out of scope):

  • #cgo pkg-config: wlroots-0.20 wayland-server pixman-1
  • Delete matrix helpers, AttachRender / Rollback / Commit, renderer Begin/End/Clear/RenderTextureWithMatrix/RenderRect, pending SetScale/SetMode/Enable/SetTransform
  • Add OutputState + CommitState/TestState, RenderPass (BeginRenderPass, AddTexture/AddRect, software cursors via render pass)
  • AutocreateBackend(EventLoop), CreateOutputLayout(Display), CreateGlobal(Display)
  • Input enum/axis fixes (drop vendor/product); XDG OnNewToplevel/OnNewPopup; Xwayland cursor buffer + maximized horz/vert
  • Regenerate xkb keysyms; drop unused local protocol .h orphans
  • CI pin: 0.17.4 → 0.20.2

Tradeoffs

  • Breaking API: callers must adopt output state + render pass (no stubs for deleted C APIs).
  • Axis notify / cursor axis callback gain relative-direction; Xwayland SetMaximized takes two bools.

Blast Radius

Any compositor importing this module (e.g. kawa later) must be updated for the new signatures. No Go toolchain bump.

Verification

Against /opt/wlroots-0.20 (wlroots 0.20.2):

export PKG_CONFIG_PATH=/opt/wlroots-0.20/lib/x86_64-linux-gnu/pkgconfig
export LD_LIBRARY_PATH=/opt/wlroots-0.20/lib/x86_64-linux-gnu
CGO_ENABLED=1 go build ./...
# → success; pkg-config --modversion wlroots-0.20 → 0.20.2

No *_test.go in tree; go test ./... not exercised beyond compile.

@DeedleFake
DeedleFake changed the base branch from master to ci September 28, 2026 15:16
@DeedleFake
DeedleFake force-pushed the wlroots-0.20 branch 6 times, most recently from 930f7d3 to 36cc5ba Compare September 28, 2026 15:40
DeedleFake and others added 6 commits September 28, 2026 11:49
Pin pkg-config to wlroots-0.20 and drop the removed matrix helpers.
Delete AttachRender/Commit/Rollback and renderer Begin/End/Clear/matrix
draw helpers. Add OutputState, CommitState/TestState, BeginRenderPass,
and RenderPass.AddTexture/AddRect. CreateGlobal now takes a Display;
CreateOutputLayout takes a Display; software cursors go through the
render pass.
AutocreateBackend takes an event loop. Fix input device enums and drop
vendor/product. Axis/button notify use wl_pointer enums and relative
direction. Prefer xdg new_toplevel/new_popup signals. Xwayland cursor
uses wlr_buffer; maximized is horz/vert.
Regenerate against current xkbcommon-keysyms.h so the package builds
with libxkbcommon 1.8+.
These local copies are unused; wlroots installs its own protocol
headers for consumers.
Bump the shared CI pin so the workflow builds wlroots-0.20 from source
and pkg-config resolves wlroots-0.20.pc under the install prefix.
Distro wlroots packages omit meson-generated *-protocol.h files that
public headers quote-include. cgo puts the package directory on the
include path, so keeping the ones this module needs here unblocks
builds against /usr.
@DeedleFake
DeedleFake merged commit d62fb43 into master Sep 28, 2026
4 checks passed
@DeedleFake
DeedleFake deleted the wlroots-0.20 branch September 28, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant