Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add missing wrappings for winewayland.so #1599

Merged
merged 2 commits into from
Jun 20, 2024
Merged

Add missing wrappings for winewayland.so #1599

merged 2 commits into from
Jun 20, 2024

Conversation

strobo5
Copy link
Contributor

@strobo5 strobo5 commented Jun 18, 2024

This was a late-night attempt to fix issue #1581.

I still don't really know how the wrappings work (I should take time and learn) so I just did what seemed right. For size_t and bool I guessed how they are specified ('L' and 'c'??).

Unsuprisingly, it does not work at this point! Now there is a SIGILL during/after mapping winewayland.so.

@ptitSeb
Copy link
Owner

ptitSeb commented Jun 18, 2024

This was a late-night attempt to fix issue #1581.

I still don't really know how the wrappings work (I should take time and learn) so I just did what seemed right. For size_t and bool I guessed how they are specified ('L' and 'c'??).

Unsuprisingly, it does not work at this point! Now there is a SIGILL during/after mapping winewayland.so.

For bool, I would use u instead. c would be signed char, I don't think it's the best approach (C unsigned char would be better).

For the SIGILL, it might be something else. Check if you have some BOX64: Error, Wayland-client, add_listener to XXXX unknown, will crash soon! in the log, that might be just that.

@ptitSeb
Copy link
Owner

ptitSeb commented Jun 18, 2024

Also, I checked the added function, and they are ok (appart from the bool->c that would be better as u (for RV64/LA64 platform that sign extend)

@strobo5
Copy link
Contributor Author

strobo5 commented Jun 19, 2024

Alriight, thanks for checking it! I'm changing the bool to u then.

Also I found exactly that error message. I just had to set a GDB breakpoint on that line since I still can't get the log messages printed on my terminal.

Now I'm trying to add the missing zxdg_output_v1 listener proxy thing. It's not working yet, I'll get back later..

@ptitSeb
Copy link
Owner

ptitSeb commented Jun 19, 2024

Listenner are more tricky to implement. if you don't have enough example, tell me, and I'll add it.

These were missing on wine-9.9 built with `--enable-win64` and
`--with-wayland=yes` on Ubuntu 24.04 "noble".

Does not work at this point! Now there is a SIGILL during/after mapping
winewayland.so due to a missing zxdg_output_v1 listener.
@strobo5
Copy link
Contributor Author

strobo5 commented Jun 19, 2024

That would be great I think. This was my attempt and I don't see any obvious problems without a bit more understanding about the mechanisms.

@ptitSeb
Copy link
Owner

ptitSeb commented Jun 19, 2024

According to https://searchfox.org/mozilla-central/source/widget/gtk/wayland/xdg-output-unstable-v1-client-protocol.h#191 you are missing "done", vFpp, between "logical_size" and "name"

@strobo5
Copy link
Contributor Author

strobo5 commented Jun 19, 2024

Haha yes, this was it. I had seen it here, read something about "deprecated", did not see it in the winewayland.so symbols and decided to omit it.

Of course this is not how box64 works, and this Wayland listener interface..
Now I know. Sort of.

The result is that I can now start regedit and winecfg. Now I will test some games.

This is used by wine's waylandclient.so. Tested with wine-9.9 regedit
and winecfg.
@strobo5 strobo5 changed the title WIP: Add missing wrappings for winewayland.so Add missing wrappings for winewayland.so Jun 19, 2024
@ptitSeb ptitSeb merged commit 22116da into ptitSeb:main Jun 20, 2024
34 checks passed
@ptitSeb
Copy link
Owner

ptitSeb commented Jun 20, 2024

thanks, and good work wrapping the listener ;)

@strobo5
Copy link
Contributor Author

strobo5 commented Jun 20, 2024

only possible with your quick feedback! thanks, this was fun

Javier97sm pushed a commit to Javier97sm/box64 that referenced this pull request Aug 16, 2024
* Add missing wrappings for winewayland.so

These were missing on wine-9.9 built with `--enable-win64` and
`--with-wayland=yes` on Ubuntu 24.04 "noble".

Does not work at this point! Now there is a SIGILL during/after mapping
winewayland.so due to a missing zxdg_output_v1 listener.

* wrappedwaylandclient: add zxdg_output_v1 listener

This is used by wine's waylandclient.so. Tested with wine-9.9 regedit
and winecfg.
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.

2 participants