SHA256
1
0
forked from pool/wayland

Accepting request 987762 from X11:Wayland

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/987762
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wayland?expand=0&rev=48
This commit is contained in:
Dominique Leuenberger 2022-07-09 14:59:00 +00:00 committed by Git OBS Bridge
commit e270a08454
7 changed files with 15 additions and 83 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b8a034154c7059772e0fdbd27dbfcda6c732df29cae56a82274f6ec5d7cd8725
size 225188

Binary file not shown.

3
wayland-1.21.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6dc64d7fc16837a693a51cfdb2e568db538bfdc9f457d4656285bb9594ef11ac
size 225936

BIN
wayland-1.21.0.tar.xz.sig Normal file

Binary file not shown.

View File

@ -1,74 +0,0 @@
From b20428663afa1a6351eb943b5f2992a744c18797 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Mon, 10 Jan 2022 15:10:07 +0100
Subject: [PATCH] shm: Close file descriptors not needed
Commit 5a981ee8 implemented a fallback path for platforms which do not
support mremap() such as FreeBSD.
To do so, the file descriptor for the mmap() is not closed immediately
but instead kept as long as the pool exists.
That induces more file descriptors kept open for longer, which in turn
may cause problems as wl_shm may be using a lot of file descriptors,
especially with Xwayland which can create a lot of pixmaps on behalf of
its X11 clients.
For platforms where mremap() is available, keeping those file
descriptors opened is a bit of a waste and may cause exhaustion of file
descriptors sooner that before commit 5a981ee8.
Only keep the mmap() file descriptor open on platforms which do not
implement mremap() and close it immediately as before on others.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1283
---
src/wayland-shm.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/wayland-shm.c b/src/wayland-shm.c
index 63ac0d7d..17ab77f4 100644
--- a/src/wayland-shm.c
+++ b/src/wayland-shm.c
@@ -65,10 +65,12 @@ struct wl_shm_pool {
char *data;
ssize_t size;
ssize_t new_size;
+#ifndef MREMAP_MAYMOVE
/* The following three fields are needed for mremap() emulation. */
int mmap_fd;
int mmap_flags;
int mmap_prot;
+#endif
bool sigbus_is_impossible;
};
@@ -153,7 +155,9 @@ shm_pool_unref(struct wl_shm_pool *pool, bool external)
return;
munmap(pool->data, pool->size);
+#ifndef MREMAP_MAYMOVE
close(pool->mmap_fd);
+#endif
free(pool);
}
@@ -344,10 +348,14 @@ shm_create_pool(struct wl_client *client, struct wl_resource *resource,
strerror(errno));
goto err_free;
}
+#ifndef MREMAP_MAYMOVE
/* We may need to keep the fd, prot and flags to emulate mremap(). */
pool->mmap_fd = fd;
pool->mmap_prot = prot;
pool->mmap_flags = flags;
+#else
+ close(fd);
+#endif
pool->resource =
wl_resource_create(client, &wl_shm_pool_interface, 1, id);
if (!pool->resource) {
--
GitLab

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Thu Jun 30 22:07:21 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.21
* This new release adds a new wl_pointer high-resolution scroll
event, adds a few new convenience functions, and contains a
collection of bug fixes.
- Drop wayland-shm-Close-file-descriptors-not-needed.patch
-------------------------------------------------------------------
Tue May 24 19:27:57 UTC 2022 - Dirk Müller <dmueller@suse.com>

View File

@ -15,8 +15,7 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define _version 1.20.0
%define _version 1.21.0
%if 0%{?suse_version} >= 1500 && 0%{?suse_version} < 1550
%define eglversion 99~%_version
%else
@ -33,12 +32,10 @@ Group: Development/Libraries/C and C++
URL: https://wayland.freedesktop.org/
#Git-Clone: git://anongit.freedesktop.org/wayland/wayland
#Git-Web: http://cgit.freedesktop.org/wayland/wayland/
Source: https://wayland.freedesktop.org/releases/%name-%version.tar.xz
Source2: https://wayland.freedesktop.org/releases/%name-%version.tar.xz.sig
Source: https://gitlab.freedesktop.org/wayland/wayland/-/releases/%version/downloads/wayland-%version.tar.xz
Source2: https://gitlab.freedesktop.org/wayland/wayland/-/releases/%version/downloads/wayland-%version.tar.xz.sig
Source3: %name.keyring
Source4: baselibs.conf
# PATCH-FIX-UPSTREAM wayland-shm-Close-file-descriptors-not-needed.patch bsc#1194190 alynx.zhou@suse.com -- Close file descriptors not needed to prevent Xwayland crash.
Patch1: wayland-shm-Close-file-descriptors-not-needed.patch
BuildRequires: c++_compiler
BuildRequires: c_compiler
BuildRequires: libxml2-tools