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

Update wayland-client to 0.30 #2128

Closed
mahkoh opened this issue Jan 3, 2022 · 14 comments · Fixed by #2676
Closed

Update wayland-client to 0.30 #2128

mahkoh opened this issue Jan 3, 2022 · 14 comments · Fixed by #2676

Comments

@mahkoh
Copy link
Contributor

mahkoh commented Jan 3, 2022

wayland-client below 0.30 is fundamentally broken in that updating your compositor can cause wayland-client applications to abort immediately on start. This is because wayland-client below 0.30 cannot handle unknown shm formats but compositors are allowed to add new formats at any time.

@kchibisov
Copy link
Member

wayland-client 0.30 isn't even released. And it'll take time to update things, since first of all sctk should be updated. But yeah, I'm long aware of this issue, and I think I saw it only once in the wild in like 3 years.

@mahkoh
Copy link
Contributor Author

mahkoh commented Jan 3, 2022

I've been hacking on a wayland compositor and I saw it immediately when trying to start alacritty because wayland-client in alacritty is not up to date with the upstream wayland protocol.

Here is the wayland-client 0.30 issue: Smithay/wayland-rs#431

@kchibisov
Copy link
Member

You can ask @vberger for wayland-protocols bump for old wayland-client. Will like solve the issue for a few month or so while migrating to wayland-client v0.30.0 is happening.

@mahkoh
Copy link
Contributor Author

mahkoh commented Jan 3, 2022

As you say but either way it would take many days for a fixed alacritty to be released. For now I've simply removed the more obscure shm formats from my code.

@kchibisov
Copy link
Member

I mean, it'll take like a week at max, since alacritty is in a release process and waiting for winit version bump.

@mahkoh
Copy link
Contributor Author

mahkoh commented Jan 3, 2022

@vberger Could you release wayland-client 0.29.2 0.29.3 with the current version of wayland.xml?

@elinorbgr
Copy link
Contributor

Technically, this update would be a breaking change (as it is adding new variants to an enum exposed in the rust API), however I think we can reasonably assume that no client using wayland-rs is exhaustively matching on that enum. So yes, I should be able to release 0.29.3 with the protocol update in a few hours.

@elinorbgr
Copy link
Contributor

0.29.3 is now released

@mahkoh
Copy link
Contributor Author

mahkoh commented Jan 4, 2022

Thanks

@mahkoh
Copy link
Contributor Author

mahkoh commented Jan 5, 2022

Why did you close this?

@kchibisov
Copy link
Member

Well, I can reopen this issue to track update to new wayland-client, but the whole purpose of the original issue was to update to wayland.xml winit is using, since you've opened issues on alacritty and winit trackers in near the same time.

@kchibisov kchibisov reopened this Jan 5, 2022
@jimblandy
Copy link

The wgpu project is also interested in having winit update to wayland-protocols to 0.30, because that will clean up our cargo audit output. 0.30 migrates off of xml-rs, which is unmaintained.

@kchibisov
Copy link
Member

kchibisov commented Jan 16, 2023

I'm working on it, but it'll take time... More likely weeks/month, given that even if I write an update it'll take some time to verify that everything is working as before.

Be aware that xml-rs wayland-protocols is a build time dependency. So it's like irrelevant.

@jimblandy
Copy link

I appreciate it - thanks very much for your work here!

I do worry a bit about build-time dependencies, too: after all, they run on my computer when I'm doing development.

kchibisov added a commit to kchibisov/winit that referenced this issue Feb 4, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2128.
kchibisov added a commit to kchibisov/winit that referenced this issue Feb 6, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2128.
kchibisov added a commit to kchibisov/winit that referenced this issue Feb 6, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2128.
kchibisov added a commit to kchibisov/winit that referenced this issue Feb 24, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2128.
kchibisov added a commit to kchibisov/winit that referenced this issue Feb 25, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2128.
kchibisov added a commit to kchibisov/winit that referenced this issue Mar 6, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2164.
Fixes rust-windowing#2128.
Fixes rust-windowing#1760.
Fixes rust-windowing#725.
kchibisov added a commit to kchibisov/winit that referenced this issue Mar 8, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2164.
Fixes rust-windowing#2128.
Fixes rust-windowing#1760.
Fixes rust-windowing#725.
kchibisov added a commit to kchibisov/winit that referenced this issue Apr 1, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2164.
Fixes rust-windowing#2128.
Fixes rust-windowing#1760.
Fixes rust-windowing#725.
kchibisov added a commit to kchibisov/winit that referenced this issue Apr 18, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2164.
Fixes rust-windowing#2128.
Fixes rust-windowing#1760.
Fixes rust-windowing#725.
kchibisov added a commit to kchibisov/winit that referenced this issue Apr 18, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2164.
Fixes rust-windowing#2128.
Fixes rust-windowing#1760.
Fixes rust-windowing#725.
kchibisov added a commit to kchibisov/winit that referenced this issue Apr 18, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2164.
Fixes rust-windowing#2128.
Fixes rust-windowing#1760.
Fixes rust-windowing#725.
kchibisov added a commit to kchibisov/winit that referenced this issue Apr 18, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes rust-windowing#2560.
Fixes rust-windowing#2164.
Fixes rust-windowing#2128.
Fixes rust-windowing#1760.
Fixes rust-windowing#725.
kchibisov added a commit that referenced this issue Apr 18, 2023
This update rewrites the winit's Wayland backend using new wayland-rs
0.30 API. This fixes long standing issue with the forward compatibility
of the wayland backend, meaning that future updates to the wayland
protocol won't break rust code anymore. like it was before when adding
new shm/enum variants into the protocol.

Fixes #2560.
Fixes #2164.
Fixes #2128.
Fixes #1760.
Fixes #725.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

5 participants