Wayland specification doesn't match code generation
Pekka Paalanen
ppaalanen at gmail.com
Thu Sep 4 01:48:52 PDT 2014
On Wed, 3 Sep 2014 22:32:02 -0500
Paul Sbarra <sbarra.paul at gmail.com> wrote:
> I tried to start some discussion on this topic previously, but it
> apparently didn't make it through the moderator, so I'm trying again having
> now joined the list.
>
> I've recently taken an interest in the gowl
> <https://github.com/sebastianskejoe/gowl> implementation of the wayland
> protocol and noticed that the specification doesn't match the interface
> that gets generated by the wayland scanner.
>
> If I attempt to code-gen gowl using the wayland.xml file the wl_registry
> bind interface is missing a couple arguments that weston expects, resulting
> in the following runtime error:
> libwayland: message too short, object (2), message bind(usun)
>
> However, the spec indicates a bind request signature of "un".
>
> I tracked this down into some curious logic in the scanner and have been
> working on a patch to try and allow the corrected signature to be specified
> in the protocol. Unfortunately this has become more interesting then I'd
> anticipated.
>
> Attached is my naive attempt at resolving this issue. I'm horrified by the
> string->interface lookup and the wl_registry_bind api change but I'm not
> sure what else one can do. Any feedback or additional help would be
> appreciated.
>
> Note that this patch applies to the 1.5.91 tagged commit and compiles
> cleanly (for wayland). Weston didn't like having the lookup function
> defined in multiple files, so maybe there would be a better place to put
> such functionality.
>
> Thanks,
> Paul
No, you need to fix the generator instead, indeed.
For the record, see:
http://cgit.freedesktop.org/wayland/wayland/commit/?id=85a6a470873357089ffb968a176d5074fddd1756
That happened before Wayland 1.0.
Also somewhat relatedly, the very next commit:
http://cgit.freedesktop.org/wayland/wayland/commit/?id=8872956dfd43d36e4165d15cb50d8ef4f81fbe0d
And then the next commit introduces wl_registry which is what we use
today:
http://cgit.freedesktop.org/wayland/wayland/commit/?id=9fe75537ad207c1496e6d9be41a8f5af4b876506
Thanks,
pq
More information about the wayland-devel
mailing list