diff options
author | Christopher Snowhill | 2024-04-26 16:56:19 -0700 |
---|---|---|
committer | Christopher Snowhill | 2024-04-26 16:56:19 -0700 |
commit | 1082b52b6f264a0522f0c7b4c1efb152a7c2fd42 (patch) | |
tree | 2b524bfa3cf344f0ce46e48a441513cfebd36266 | |
parent | 80511157bbcf8c7e8a545b23901a94a49169b782 (diff) | |
download | aur-1082b52b6f264a0522f0c7b4c1efb152a7c2fd42.tar.gz |
Update to 0.17.3-1
The two previously included patches are now upstream.
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | 4629.patch | 150 | ||||
-rw-r--r-- | 4652.patch | 128 | ||||
-rw-r--r-- | PKGBUILD | 16 |
4 files changed, 10 insertions, 298 deletions
@@ -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 = ¤t_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 - @@ -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 () { |