void-packages/srcpkgs/wdisplays/patches/correct-protocol-version.patch
Đoàn Trần Công Danh 04b9978a29 srcpkgs/w*: convert patches to -Np1
* wine is kept at -Np0

```sh
git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" |
while read template; do
	for p in ${template%/template}/patches/*; do
		sed -i '
			\,^[+-][+-][+-] /dev/null,b
			/^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b
			s,^[*][*][*] ,&a/,
			/^--- /{
				s,\(^--- \)\(./\)*,\1a/,
				s,[.-][Oo][Rr][Ii][Gg]\([	/]\),\1,
				s/[.-][Oo][Rr][Ii][Gg]$//
				s/[.]patched[.]\([^.]\)/.\1/
				h
			}
			/^+++ -/{
				g
				s/^--- a/+++ b/
				b
			}
			s,\(^+++ \)\(./\)*,\1b/,
		' "$p"
	done
	sed -i '/^patch_args=/d' $template
done
```
2021-06-20 13:17:29 +07:00

48 lines
2.2 KiB
Diff

From 657e2966e556c78f121075c69fe1ba8d2b4dcb73 Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Wed, 8 Jul 2020 11:57:35 +0200
Subject: [PATCH] Use correct versions when binding globals
Changes to protocols aren't forward-compatible. It's not possible to use
version n+1 when a client has been designed to work with version n. For
instance in wlr-screencopy v5 a new event has been added. Binding to
version 5 without upgrading the client leads to libwayland errors
because libwayland doesn't know how to handle the event.
The client needs to maintain its own version requirements.
Closes: https://github.com/cyclopsian/wdisplays/issues/18
---
src/outputs.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/outputs.c b/src/outputs.c
index 9ebf7e5..40410ec 100644
--- a/src/outputs.c
+++ b/src/outputs.c
@@ -534,20 +534,20 @@ static void registry_handle_global(void *data, struct wl_registry *registry,
if (strcmp(interface, zwlr_output_manager_v1_interface.name) == 0) {
state->output_manager = wl_registry_bind(registry, name,
- &zwlr_output_manager_v1_interface, version);
+ &zwlr_output_manager_v1_interface, 1);
zwlr_output_manager_v1_add_listener(state->output_manager,
&output_manager_listener, state);
} else if (strcmp(interface, zxdg_output_manager_v1_interface.name) == 0) {
state->xdg_output_manager = wl_registry_bind(registry, name,
- &zxdg_output_manager_v1_interface, version);
+ &zxdg_output_manager_v1_interface, 3);
} else if(strcmp(interface, zwlr_screencopy_manager_v1_interface.name) == 0) {
state->copy_manager = wl_registry_bind(registry, name,
- &zwlr_screencopy_manager_v1_interface, version);
+ &zwlr_screencopy_manager_v1_interface, 1);
} else if(strcmp(interface, zwlr_layer_shell_v1_interface.name) == 0) {
state->layer_shell = wl_registry_bind(registry, name,
- &zwlr_layer_shell_v1_interface, version);
+ &zwlr_layer_shell_v1_interface, 1);
} else if(strcmp(interface, wl_shm_interface.name) == 0) {
- state->shm = wl_registry_bind(registry, name, &wl_shm_interface, version);
+ state->shm = wl_registry_bind(registry, name, &wl_shm_interface, 1);
}
}