diff --git a/wayland-1.19.0.tar.xz b/wayland-1.19.0.tar.xz deleted file mode 100644 index 08c8ec3..0000000 --- a/wayland-1.19.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:baccd902300d354581cd5ad3cc49daa4921d55fb416a5883e218750fef166d15 -size 456380 diff --git a/wayland-1.19.0.tar.xz.sig b/wayland-1.19.0.tar.xz.sig deleted file mode 100644 index d6b931b..0000000 Binary files a/wayland-1.19.0.tar.xz.sig and /dev/null differ diff --git a/wayland-1.20.0.tar.xz b/wayland-1.20.0.tar.xz new file mode 100644 index 0000000..af70a1e --- /dev/null +++ b/wayland-1.20.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8a034154c7059772e0fdbd27dbfcda6c732df29cae56a82274f6ec5d7cd8725 +size 225188 diff --git a/wayland-1.20.0.tar.xz.sig b/wayland-1.20.0.tar.xz.sig new file mode 100644 index 0000000..c87cd09 Binary files /dev/null and b/wayland-1.20.0.tar.xz.sig differ diff --git a/wayland-shm-Close-file-descriptors-not-needed.patch b/wayland-shm-Close-file-descriptors-not-needed.patch new file mode 100644 index 0000000..1cc2a05 --- /dev/null +++ b/wayland-shm-Close-file-descriptors-not-needed.patch @@ -0,0 +1,74 @@ +From b20428663afa1a6351eb943b5f2992a744c18797 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +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 +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 + diff --git a/wayland.changes b/wayland.changes index 23f02d1..ba0b0c1 100644 --- a/wayland.changes +++ b/wayland.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Tue Jan 11 08:29:19 UTC 2022 - Alynx Zhou + +- Add wayland-shm-Close-file-descriptors-not-needed.patch: For + platforms that support mremap(), we don't need to hold file + descriptors all the time, because programs like Xwayland will + hold a lot of file descriptors and may crash, this patch close + file descriptors earlier for those platforms (bsc#1194190). + +------------------------------------------------------------------- +Mon Jan 10 18:09:27 UTC 2022 - Stefan Dirsch + +- obsolete/provide libwayland-egl-devel 18.0.2 also on sle15-sp4 + +------------------------------------------------------------------- +Thu Dec 9 18:08:16 UTC 2021 - Jan Engelhardt + +- Update to release 1.20 + * A few protocol additions: wl_surface.offset allows clients to + update a surface's buffer offset independently from the + buffer, wl_output.name and description allow clients to + identify outputs without depending on xdg-output-unstable-v1. + * In protocol definitions, events have a new "type" attribute + and can now be marked as destructors. + * A number of bug fixes, including a race condition when + destroying proxies in multi-threaded clients. + ------------------------------------------------------------------- Fri Nov 12 20:08:09 UTC 2021 - Bjørn Lie diff --git a/wayland.spec b/wayland.spec index ca97a97..46e36a8 100644 --- a/wayland.spec +++ b/wayland.spec @@ -15,7 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -%define _version 1.19.0 +%define _version 1.20.0 %if 0%{?suse_version} >= 1500 && 0%{?suse_version} < 1550 %define eglversion 99~%_version %else @@ -37,12 +37,13 @@ Source: http://wayland.freedesktop.org/releases/%name-%version.tar.xz Source2: http://wayland.freedesktop.org/releases/%name-%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: meson BuildRequires: libxml2-tools BuildRequires: libxslt-tools +BuildRequires: meson BuildRequires: pkg-config BuildRequires: xz BuildRequires: pkgconfig(expat) @@ -115,7 +116,7 @@ Requires: libwayland-cursor0 = %_version Requires: libwayland-egl1 = %eglversion Requires: libwayland-server0 = %_version %if 0%{?suse_version} >= 1500 -%if 0%{?suse_version} >= 1550 +%if (0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400) Provides: libwayland-egl-devel = 18.1.5 Obsoletes: libwayland-egl-devel < 18.1.5 %else