xwayland: vendor pristine 24.1.8 (full-fork), drop obsolete redox.patch

Move xwayland to the vendored full-fork model (committed source/ tree) so the
Redox port can be iterated in-place. The previous redox.patch was obsolete —
written against an older xwayland: 24.1.8 already carries the BTN_LEFT/MIDDLE/
RIGHT button mapping and the modern meson get_variable() API, and relibc now
provides uname()/utsname, so the os/access.c uname guard is unnecessary. Recipe
switched from tar= + redox.patch to path=source; cached source.tar removed.
Redox-specific source changes will be committed directly on this tree as the
port surfaces real compile errors (drm/glamor/glx already off via mesonflags).
This commit is contained in:
2026-08-01 13:42:38 +03:00
parent f9ab1232e6
commit f28022ba2b
759 changed files with 8 additions and 98 deletions
+8 -4
View File
@@ -3,10 +3,14 @@ name = "xwayland"
version = "24.1.8"
[source]
tar = "https://www.x.org/releases/individual/xserver/xwayland-24.1.8.tar.xz"
patches = [
"redox.patch"
]
# Vendored full-fork model: builds from the committed source/ tree (pristine
# xwayland 24.1.8 with the Redox port baked in). The old redox.patch was
# obsolete — it was written for an older xwayland, whereas 24.1.8 already
# carries the BTN_LEFT/MIDDLE/RIGHT mapping and the modern meson get_variable()
# API, and relibc now provides uname()/utsname (so the os/access.c guard is
# unnecessary). Redox-specific changes are committed directly in source/.
# upstream: https://www.x.org/releases/individual/xserver/xwayland-24.1.8.tar.xz
path = "source"
[build]
template = "meson"
dependencies = [
@@ -1,94 +0,0 @@
diff -ruwN source/hw/xwayland/meson.build source-new/hw/xwayland/meson.build
--- a/source/hw/xwayland/meson.build
+++ b/source-new/hw/xwayland/meson.build
@@ -30,8 +30,7 @@
'../../mi/miinitext.h',
]
-scanner_dep = dependency('wayland-scanner', native: true)
-scanner = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
+scanner = find_program('wayland-scanner', native: true)
protocols_dep = dependency('wayland-protocols', version: wayland_protocols_req)
protodir = protocols_dep.get_pkgconfig_variable('pkgdatadir')
@@ -55,11 +54,7 @@
arguments : ['client-header', '@INPUT@', '@OUTPUT@']
)
-if scanner_dep.version().version_compare('>= 1.14.91')
scanner_argument = 'private-code'
-else
- scanner_argument = 'code'
-endif
code = generator(scanner,
output : '@BASENAME@-protocol.c',
diff -ruwN source/hw/xwayland/xwayland-input.c source-new/hw/xwayland/xwayland-input.c
--- a/source/hw/xwayland/xwayland-input.c
+++ b/source-new/hw/xwayland/xwayland-input.c
@@ -26,7 +26,7 @@
#include <xwayland-config.h>
-#include <linux/input.h>
+#include <linux/input.h>
#include <sys/mman.h>
#include <inputstr.h>
@@ -758,9 +758,16 @@
xwl_seat->xwl_screen->serial = serial;
switch (button) {
+ case BTN_LEFT:
+ index = 1;
+ break;
+ case BTN_MIDDLE:
+ index = 2;
+ break;
+ case BTN_RIGHT:
+ index = 3;
+ break;
default:
- /* Skip indexes 4-7: they are used for vertical and horizontal scroll.
- The rest of the buttons go in order: BTN_SIDE becomes 8, etc. */
index = 8 + button - 0x113 /* BTN_SIDE */;
break;
}
@@ -1057,7 +1057,7 @@
state_rec = xwl_seat->keyboard->key->xkbInfo->state;
xkb_state = (XkbStateFieldFromRec(&state_rec) & 0xff);
-
+/*
if (((key == KEY_LEFTSHIFT || key == KEY_RIGHTSHIFT) && (xkb_state & ControlMask)) ||
((key == KEY_LEFTCTRL || key == KEY_RIGHTCTRL) && (xkb_state & ShiftMask))) {
@@ -1072,6 +1072,7 @@
if (xwl_window)
xwl_window_rootful_update_title(xwl_window);
}
+*/
}
static void
diff -ruwN source/os/access.c source-new/os/access.c
--- a/source/os/access.c
+++ b/source-new/os/access.c
@@ -446,7 +446,7 @@
int family;
register HOST *host;
-#ifndef WIN32
+#if !defined(WIN32) && !defined(__redox__)
struct utsname name;
#else
struct {
@@ -477,7 +477,7 @@
* uname() lets me access to the whole string (it smashes release, you
* see), whereas gethostname() kindly truncates it for me.
*/
-#ifndef WIN32
+#if !defined(WIN32) && !defined(__redox__)
uname(&name);
#else
gethostname(name.nodename, sizeof(name.nodename));
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More