You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
wayland 1.26.0: four members, and the macros become a module
Rebased on upstream 1.26.0 (from 1.23.1) and reorganised around what the
packages actually are:
freedesktop.wayland-scanner the protocol generator
freedesktop.wayland libwayland-client.so.0 + import wayland.client
freedesktop.wayland-server libwayland-server.so.0 + import wayland.server
freedesktop.wayland-util the macros, as entities a module can export
Each library package now ships BOTH the C library and its module wrapper, so
there is one package per library rather than a C one and a module one — the
opencv shape. The namespace is the upstream org.
The module wrappers add no API: every exported name is upstream's, spelled
upstream's way, and the export lists are generated from the public headers so a
version bump cannot quietly drop one.
Macros were the one thing that could not come through. `export` names
entities and a macro is not one, so wayland.util maps each to what it actually
is — WL_MARSHAL_FLAG_DESTROY to a constexpr, wl_container_of to a function
template, and the six *_for_each loops to ranges. Its test instantiates all of
them, including the _safe removal guarantee, and links nothing: the list is
wired by hand so a package of templates keeps zero dependencies.
1.26.0 needed one build fix over 1.23.1: scanner.c now calls strndup(), which
-std=c11 hides, so the scanner carries -D_GNU_SOURCE= as well.
CI runs the whole thing on gcc AND llvm — the export list is exactly where the
two disagree — and still builds the tree with upstream meson, so "no upstream
file is patched" has a test rather than a promise.
0 commit comments