Update to 1.21.0

* Add GPG verification
This commit is contained in:
Mike Rochefort 2022-07-01 10:18:57 -04:00
parent 65647ec64e
commit b775661bbf
5 changed files with 16 additions and 81 deletions

2
.gitignore vendored
View File

@ -58,3 +58,5 @@
/wayland-1.18.0.tar.xz /wayland-1.18.0.tar.xz
/wayland-1.19.0.tar.xz /wayland-1.19.0.tar.xz
/wayland-1.20.0.tar.xz /wayland-1.20.0.tar.xz
/wayland-1.21.0.tar.xz
/wayland-1.21.0.tar.xz.sig

View File

@ -1,74 +0,0 @@
From 5c0a466e1757fc74dba32fdb1a9ad90eda8b4cdb 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 28c550d..c4cd390 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) {
--
2.35.1

BIN
emersion-gpg-key.asc Normal file

Binary file not shown.

View File

@ -1 +1,2 @@
SHA512 (wayland-1.20.0.tar.xz) = e8a1f410994b947f850799bdd0d95a2429d8467f853e62a0ab3915a4e9fe130f8aa977e03715114ab740c6ec546edea63d275ce7f927d4f3029ea126e6a7d215 SHA512 (wayland-1.21.0.tar.xz) = 5575216d30fdf5c63caa6bcad071e15f2a4f3acb12df776806073f65db37a50b5b5b3cc7957c5497636f4ac01893e2eaab26e453ded44b287acde01762f5fdc3
SHA512 (wayland-1.21.0.tar.xz.sig) = 489351948ad10d54049a76c12763532aa0e16bd56bb246d9810011a902a3c701b0de3cf0dae58d8c06882b457728e7321016e9ee527202b2ef2d5fd1f032b818

View File

@ -1,14 +1,13 @@
Name: wayland Name: wayland
Version: 1.20.0 Version: 1.21.0
Release: 5%{?dist} Release: 1%{?dist}
Summary: Wayland Compositor Infrastructure Summary: Wayland Compositor Infrastructure
License: MIT License: MIT
URL: http://wayland.freedesktop.org/ URL: http://wayland.freedesktop.org/
Source0: http://wayland.freedesktop.org/releases/%{name}-%{version}.tar.xz Source0: https://gitlab.freedesktop.org/%{name}/%{name}/-/releases/%{version}/downloads/%{name}-%{version}.tar.xz
Source1: https://gitlab.freedesktop.org/%{name}/%{name}/-/releases/%{version}/downloads/%{name}-%{version}.tar.xz.sig
# https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/203 Source2: emersion-gpg-key.asc
Patch0: 0001-shm-Close-file-descriptors-not-needed.patch
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@ -22,6 +21,9 @@ BuildRequires: meson
BuildRequires: pkgconfig(libffi) BuildRequires: pkgconfig(libffi)
BuildRequires: xmlto BuildRequires: xmlto
# For origin certification
BuildRequires: gnupg2
%description %description
Wayland is a protocol for a compositor to talk to its clients as well as a C Wayland is a protocol for a compositor to talk to its clients as well as a C
library implementation of that protocol. The compositor can be a standalone library implementation of that protocol. The compositor can be a standalone
@ -67,6 +69,7 @@ Summary: Wayland server library
Wayland server library Wayland server library
%prep %prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -p1 %autosetup -p1
%build %build
@ -112,6 +115,9 @@ Wayland server library
%{_libdir}/libwayland-server.so.0* %{_libdir}/libwayland-server.so.0*
%changelog %changelog
* Tue Jul 26 2022 Mike Rochefort <mroche@redhat.com> - 1.21.0-1
- Update to 1.21.0
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.0-5 * Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild