summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Snowhill2024-04-26 16:56:19 -0700
committerChristopher Snowhill2024-04-26 16:56:19 -0700
commit1082b52b6f264a0522f0c7b4c1efb152a7c2fd42 (patch)
tree2b524bfa3cf344f0ce46e48a441513cfebd36266
parent80511157bbcf8c7e8a545b23901a94a49169b782 (diff)
downloadaur-1082b52b6f264a0522f0c7b4c1efb152a7c2fd42.tar.gz
Update to 0.17.3-1
The two previously included patches are now upstream.
-rw-r--r--.SRCINFO14
-rw-r--r--4629.patch150
-rw-r--r--4652.patch128
-rw-r--r--PKGBUILD16
4 files changed, 10 insertions, 298 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5f150a2bdb55..8a045cac45cf 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = wlroots-hidpi-xprop
pkgdesc = Modular Wayland compositor library (stable, with patches)
- pkgver = 0.17.2
- pkgrel = 6
+ pkgver = 0.17.3
+ pkgrel = 1
url = https://gitlab.freedesktop.org/wlroots/wlroots
arch = x86_64
license = MIT
@@ -28,20 +28,16 @@ pkgbase = wlroots-hidpi-xprop
depends = xorg-xwayland
optdepends = xorg-xwayland-hidpi-xprop: HiDPI support, see https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/733
provides = libwlroots.so
- provides = wlroots=0.17.2
+ provides = wlroots=0.17.3
conflicts = wlroots
options = debug
- source = wlroots-hidpi-xprop::git+https://gitlab.freedesktop.org/wlroots/wlroots#tag=0.17.2
+ source = wlroots-hidpi-xprop::git+https://gitlab.freedesktop.org/wlroots/wlroots#tag=0.17.3
source = 0001-xwayland-support-HiDPI-scale.patch
source = 0002-Fix-configure_notify-event.patch
source = 0003-Fix-size-hints-under-Xwayland-scaling.patch
- source = 4629.patch
- source = 4652.patch
- sha512sums = 568d6f74a60ed4c1150cd9520df7a2bd55bc306732a4c8ccaa722bf7737075f9934dc48c330276d2a96d3ffa4aa35cc6023b09375557e89589eb026a3de5b5b9
+ sha512sums = fedb687840b1b0bd29049b3d7fae1f1b08c74d603b1e26b410d40a1fbcac05fef1a8b8d53f700a8c789f7280e8871776f02523635bf0d0aa7187511ef61af060
sha512sums = ca05b46c8222e6982c848944ff2afe7765a2e76bb90e29c9d5b5dde9b51a0038bce8b0d52d01c390c970319ef10614ab1454a66940bf3a5b6193fc7f189afe6b
sha512sums = 484c8a6848b1409a16403bf0c3e366bf5203716824c24e16efcdcdb71ff34c42b5da6e3da338fafea70ad80fcdd3d6e9f070fb809093d8b0b08ee0b2c95a4de4
sha512sums = 8e3e77f6df204b6e5aa770be61fc8a6525e295cc8acdb0084ce66463e78f11702cf066640b20d7ff9560bdcdf7fa626db2e90651dcd42670250f45ac0f636854
- sha512sums = 5648d43fca061ee4b72dfb2cf41a8b100d7d7bb6a15a6e06a6f2bbbcdfb19495c38bb6f0bd8ca1604244eb7bf3aec9563395fc72e766bc1cf9b1767995513567
- sha512sums = 2ff1888718038653005a075aa132d95a02bd978188b48c3d5d046a18d19ac59f59eb96ccb026bcaaef6235db0f1778e21da262c653abb68eeb05e34ef7039da0
pkgname = wlroots-hidpi-xprop
diff --git a/4629.patch b/4629.patch
deleted file mode 100644
index 75862c13e949..000000000000
--- a/4629.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 78367d88b3d6b635af6c43f41b580c0e0754e1ef Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Chlo=C3=A9=20Vulquin?= <code@toast.bunkerlabs.net>
-Date: Thu, 28 Mar 2024 13:46:20 +0100
-Subject: [PATCH] xcursor: catch theme inheritance loops
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-As of currently, when an xcursor theme depends on itself or another theme
-that will eventually depend on it, `xcursor_load_theme` will recurse
-infinitely while processing the inherits.
-
-This change introduces a stack-allocated linked list of visited nodes
-by name, and skips any already visited nodes in the inherit list.
-
-Side effects:
-* Since the linked list is stack-allocated, there is a potential for an
- overflow if there is a very long list of dependencies. If this turns out
- to be a legitimate concern, the linked list is trivial to convert to
- being heap-allocated.
-* There is an existing linked list (technically doubly linked list)
- implementation in the wayland codebase. As of currently, the xcursor
- codebase does not refer to it. Consequently, this change writes a
- minimal single linked list implementation to utilize directly.
-
-This changeset is based on the merge request in wayland/wayland!376.
-The xcursor code is mostly shared between the two.
-This changeset diverges the files slightly due to stylistic differences
-between the repositories, but the logic is identical.
-
-Signed-off-by: Chloé Vulquin <toast@bunkerlabs.net>
----
- xcursor/xcursor.c | 84 +++++++++++++++++++++++++++++++++--------------
- 1 file changed, 59 insertions(+), 25 deletions(-)
-
-diff --git a/xcursor/xcursor.c b/xcursor/xcursor.c
-index 663467097a..3b60db902f 100644
---- a/xcursor/xcursor.c
-+++ b/xcursor/xcursor.c
-@@ -723,38 +723,42 @@ load_all_cursors_from_dir(const char *path, int size,
- closedir(dir);
- }
-
--/** Load all the cursor of a theme
-- *
-- * This function loads all the cursor images of a given theme and its
-- * inherited themes. Each cursor is loaded into an struct xcursor_images object
-- * which is passed to the caller's load callback. If a cursor appears
-- * more than once across all the inherited themes, the load callback
-- * will be called multiple times, with possibly different struct xcursor_images
-- * object which have the same name. The user is expected to destroy the
-- * struct xcursor_images objects passed to the callback with
-- * xcursor_images_destroy().
-- *
-- * \param theme The name of theme that should be loaded
-- * \param size The desired size of the cursor images
-- * \param load_callback A callback function that will be called
-- * for each cursor loaded. The first parameter is the struct xcursor_images
-- * object representing the loaded cursor and the second is a pointer
-- * to data provided by the user.
-- * \param user_data The data that should be passed to the load callback
-- */
--void
--xcursor_load_theme(const char *theme, int size,
-+struct nodelist {
-+ size_t nodelen;
-+ const char *node;
-+ struct nodelist *next;
-+};
-+
-+static bool
-+nodelist_contains(struct nodelist *nodelist, const char *s, size_t ss) {
-+ struct nodelist *vi;
-+ for (vi = nodelist; vi && vi->node; vi = vi->next) {
-+ if (vi->nodelen == ss && !strncmp(s, vi->node, vi->nodelen))
-+ return true;
-+ }
-+ return false;
-+}
-+
-+static void
-+xcursor_load_theme_protected(const char *theme, int size,
- void (*load_callback)(struct xcursor_images *, void *),
-- void *user_data)
--{
-+ void *user_data,
-+ struct nodelist *visited_nodes) {
- char *full, *dir;
- char *inherits = NULL;
- const char *path, *i;
- char *xcursor_path;
-+ size_t si;
-+ struct nodelist current_node;
-
- if (!theme)
- theme = "default";
-
-+ current_node.next = visited_nodes;
-+ current_node.node = theme;
-+ current_node.nodelen = strlen(theme);
-+ visited_nodes = &current_node;
-+
- xcursor_path = xcursor_library_path();
- for (path = xcursor_path;
- path;
-@@ -779,9 +783,39 @@ xcursor_load_theme(const char *theme, int size,
- free(dir);
- }
-
-- for (i = inherits; i; i = xcursor_next_path(i))
-- xcursor_load_theme(i, size, load_callback, user_data);
-+ for (i = inherits; i; i = xcursor_next_path(i)) {
-+ si = strlen(i);
-+ if (nodelist_contains(visited_nodes, i, si))
-+ continue;
-+ xcursor_load_theme_protected(i, size, load_callback, user_data, visited_nodes);
-+ }
-
- free(inherits);
- free(xcursor_path);
- }
-+
-+/** Load all the cursor of a theme
-+ *
-+ * This function loads all the cursor images of a given theme and its
-+ * inherited themes. Each cursor is loaded into an struct xcursor_images object
-+ * which is passed to the caller's load callback. If a cursor appears
-+ * more than once across all the inherited themes, the load callback
-+ * will be called multiple times, with possibly different struct xcursor_images
-+ * object which have the same name. The user is expected to destroy the
-+ * struct xcursor_images objects passed to the callback with
-+ * xcursor_images_destroy().
-+ *
-+ * \param theme The name of theme that should be loaded
-+ * \param size The desired size of the cursor images
-+ * \param load_callback A callback function that will be called
-+ * for each cursor loaded. The first parameter is the struct xcursor_images
-+ * object representing the loaded cursor and the second is a pointer
-+ * to data provided by the user.
-+ * \param user_data The data that should be passed to the load callback
-+ */
-+void
-+xcursor_load_theme(const char *theme, int size,
-+ void (*load_callback)(struct xcursor_images *, void *),
-+ void *user_data) {
-+ return xcursor_load_theme_protected(theme, size, load_callback, user_data, NULL);
-+}
---
-GitLab
-
diff --git a/4652.patch b/4652.patch
deleted file mode 100644
index e8649db87b9d..000000000000
--- a/4652.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From f818eca2fccf92681ab0df19008e2c417f13e201 Mon Sep 17 00:00:00 2001
-From: Ilia Bozhinov <ammen99@gmail.com>
-Date: Sat, 20 Apr 2024 14:59:40 +0200
-Subject: [PATCH] xwayland: add a size-safe wrapper for xcb_send_event
-
-xcb_send_event expects the caller to always provide 32 byte data, even if the actual event struct is
-smaller than that.
-
-Reference: https://gitlab.freedesktop.org/xorg/lib/libxcb/-/issues/18
----
- include/xwayland/xwm.h | 4 ++++
- xwayland/selection/dnd.c | 5 +++--
- xwayland/selection/outgoing.c | 5 +++--
- xwayland/xwm.c | 29 +++++++++++++++++++++++++----
- 4 files changed, 35 insertions(+), 8 deletions(-)
-
-diff --git a/include/xwayland/xwm.h b/include/xwayland/xwm.h
-index 66108e2bdb..54240f79f3 100644
---- a/include/xwayland/xwm.h
-+++ b/include/xwayland/xwm.h
-@@ -162,4 +162,8 @@ char *xwm_get_atom_name(struct wlr_xwm *xwm, xcb_atom_t atom);
- bool xwm_atoms_contains(struct wlr_xwm *xwm, xcb_atom_t *atoms,
- size_t num_atoms, enum atom_name needle);
-
-+xcb_void_cookie_t xwm_wrap_xcb_send_event(xcb_connection_t *c,
-+ uint8_t propagate, xcb_window_t destination,
-+ uint32_t event_mask, const char *event, uint32_t length);
-+
- #endif
-diff --git a/xwayland/selection/dnd.c b/xwayland/selection/dnd.c
-index 1c053e5e5c..d39511b4d9 100644
---- a/xwayland/selection/dnd.c
-+++ b/xwayland/selection/dnd.c
-@@ -49,11 +49,12 @@ static void xwm_dnd_send_event(struct wlr_xwm *xwm, xcb_atom_t type,
- .data = *data,
- };
-
-- xcb_send_event(xwm->xcb_conn,
-+ xwm_wrap_xcb_send_event(xwm->xcb_conn,
- 0, // propagate
- dest->window_id,
- XCB_EVENT_MASK_NO_EVENT,
-- (const char *)&event);
-+ (const char *)&event,
-+ sizeof(event));
- xcb_flush(xwm->xcb_conn);
- }
-
-diff --git a/xwayland/selection/outgoing.c b/xwayland/selection/outgoing.c
-index d2d0932cf5..2a2cd4f984 100644
---- a/xwayland/selection/outgoing.c
-+++ b/xwayland/selection/outgoing.c
-@@ -27,11 +27,12 @@ static void xwm_selection_send_notify(struct wlr_xwm *xwm,
- " requestor=%" PRIu32 " selection=%" PRIu32 " target=%" PRIu32 " property=%" PRIu32,
- req->requestor, req->time, req->requestor, req->selection, req->target,
- selection_notify.property);
-- xcb_send_event(xwm->xcb_conn,
-+ xwm_wrap_xcb_send_event(xwm->xcb_conn,
- 0, // propagate
- req->requestor,
- XCB_EVENT_MASK_NO_EVENT,
-- (const char *)&selection_notify);
-+ (const char *)&selection_notify,
-+ sizeof(selection_notify));
- xcb_flush(xwm->xcb_conn);
- }
-
-diff --git a/xwayland/xwm.c b/xwayland/xwm.c
-index 0aa33336f9..fcd75e6c85 100644
---- a/xwayland/xwm.c
-+++ b/xwayland/xwm.c
-@@ -257,6 +257,25 @@ static void xwm_set_net_active_window(struct wlr_xwm *xwm,
- xwm->atoms[WINDOW], 32, 1, &window);
- }
-
-+/*
-+ * Wrapper for xcb_send_event, which ensures that the event data is 32 byte big.
-+ */
-+xcb_void_cookie_t xwm_wrap_xcb_send_event(xcb_connection_t *c,
-+ uint8_t propagate, xcb_window_t destination,
-+ uint32_t event_mask, const char *event, uint32_t length)
-+{
-+ if (length == 32) {
-+ return xcb_send_event(c, propagate, destination, event_mask, event);
-+ } else if (length < 32) {
-+ char buf[32];
-+ memcpy(buf, event, length);
-+ memset(buf + length, 0, 32 - length);
-+ return xcb_send_event(c, propagate, destination, event_mask, buf);
-+ } else {
-+ assert(false && "Event too long");
-+ }
-+}
-+
- static void xwm_send_wm_message(struct wlr_xwayland_surface *surface,
- xcb_client_message_data_t *data, uint32_t event_mask) {
- struct wlr_xwm *xwm = surface->xwm;
-@@ -270,11 +289,12 @@ static void xwm_send_wm_message(struct wlr_xwayland_surface *surface,
- .data = *data,
- };
-
-- xcb_send_event(xwm->xcb_conn,
-+ xwm_wrap_xcb_send_event(xwm->xcb_conn,
- 0, // propagate
- surface->window_id,
- event_mask,
-- (const char *)&event);
-+ (const char *)&event,
-+ sizeof(event));
- xcb_flush(xwm->xcb_conn);
- }
-
-@@ -1824,9 +1844,10 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface,
- .height = height,
- };
-
-- xcb_send_event(xwm->xcb_conn, 0, xsurface->window_id,
-+ xwm_wrap_xcb_send_event(xwm->xcb_conn, 0, xsurface->window_id,
- XCB_EVENT_MASK_STRUCTURE_NOTIFY,
-- (const char *)&configure_notify);
-+ (const char *)&configure_notify,
-+ sizeof(configure_notify));
- }
-
- xcb_flush(xwm->xcb_conn);
---
-GitLab
-
diff --git a/PKGBUILD b/PKGBUILD
index 0056031dbe28..c16751bd7f5d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,8 +4,8 @@
# Contributor: Adrian Perez de Castro <aperez@igalia.com>
# Contributor: Antonin Décimo <antonin dot decimo at gmail dot com>
pkgname=wlroots-hidpi-xprop
-pkgver=0.17.2
-pkgrel=6
+pkgver=0.17.3
+pkgrel=1
license=(MIT)
pkgdesc='Modular Wayland compositor library (stable, with patches)'
url=https://gitlab.freedesktop.org/wlroots/wlroots
@@ -42,15 +42,11 @@ makedepends=(
source=("${pkgname}::git+${url}#tag=${pkgver}"
0001-xwayland-support-HiDPI-scale.patch
0002-Fix-configure_notify-event.patch
- 0003-Fix-size-hints-under-Xwayland-scaling.patch
- 4629.patch
- 4652.patch)
-sha512sums=('568d6f74a60ed4c1150cd9520df7a2bd55bc306732a4c8ccaa722bf7737075f9934dc48c330276d2a96d3ffa4aa35cc6023b09375557e89589eb026a3de5b5b9'
+ 0003-Fix-size-hints-under-Xwayland-scaling.patch)
+sha512sums=('fedb687840b1b0bd29049b3d7fae1f1b08c74d603b1e26b410d40a1fbcac05fef1a8b8d53f700a8c789f7280e8871776f02523635bf0d0aa7187511ef61af060'
'ca05b46c8222e6982c848944ff2afe7765a2e76bb90e29c9d5b5dde9b51a0038bce8b0d52d01c390c970319ef10614ab1454a66940bf3a5b6193fc7f189afe6b'
'484c8a6848b1409a16403bf0c3e366bf5203716824c24e16efcdcdb71ff34c42b5da6e3da338fafea70ad80fcdd3d6e9f070fb809093d8b0b08ee0b2c95a4de4'
- '8e3e77f6df204b6e5aa770be61fc8a6525e295cc8acdb0084ce66463e78f11702cf066640b20d7ff9560bdcdf7fa626db2e90651dcd42670250f45ac0f636854'
- '5648d43fca061ee4b72dfb2cf41a8b100d7d7bb6a15a6e06a6f2bbbcdfb19495c38bb6f0bd8ca1604244eb7bf3aec9563395fc72e766bc1cf9b1767995513567'
- '2ff1888718038653005a075aa132d95a02bd978188b48c3d5d046a18d19ac59f59eb96ccb026bcaaef6235db0f1778e21da262c653abb68eeb05e34ef7039da0')
+ '8e3e77f6df204b6e5aa770be61fc8a6525e295cc8acdb0084ce66463e78f11702cf066640b20d7ff9560bdcdf7fa626db2e90651dcd42670250f45ac0f636854')
prepare () {
cd "${pkgname}"
@@ -58,8 +54,6 @@ prepare () {
patch -Np1 < ../0001-xwayland-support-HiDPI-scale.patch
patch -Np1 < ../0002-Fix-configure_notify-event.patch
patch -Np1 < ../0003-Fix-size-hints-under-Xwayland-scaling.patch
- patch -Np1 < ../4629.patch
- patch -Np1 < ../4652.patch
}
build () {