Update to 3.23.90

This commit is contained in:
Florian Müllner 2017-02-16 00:59:15 +01:00
parent 7df863cfb1
commit d38870577f
5 changed files with 8 additions and 150 deletions

1
.gitignore vendored
View File

@ -118,3 +118,4 @@ mutter-2.31.5.tar.bz2
/mutter-3.22.1.tar.xz
/mutter-3.23.1.tar.xz
/mutter-3.23.2.tar.xz
/mutter-3.23.90.tar.xz

View File

@ -1,126 +0,0 @@
From c6835e469549189eed7cac13a9c6f0de574e436b Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Tue, 4 Oct 2016 13:20:27 -0400
Subject: [PATCH] Use eglGetPlatformDisplay
Different libEGL will do different things for eglGetDisplay since it has
to guess what kind of display it's been handed. Better to just use the
API that makes it explicit.
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
cogl/cogl/winsys/cogl-winsys-egl-x11.c | 36 ++++++++++++++++++++++++++++--
src/backends/native/meta-renderer-native.c | 36 ++++++++++++++++++++++++++++--
2 files changed, 68 insertions(+), 4 deletions(-)
diff --git a/cogl/cogl/winsys/cogl-winsys-egl-x11.c b/cogl/cogl/winsys/cogl-winsys-egl-x11.c
index 454b41e..a7379a5 100644
--- a/cogl/cogl/winsys/cogl-winsys-egl-x11.c
+++ b/cogl/cogl/winsys/cogl-winsys-egl-x11.c
@@ -261,6 +261,39 @@ _cogl_winsys_renderer_disconnect (CoglRenderer *renderer)
g_slice_free (CoglRendererEGL, egl_renderer);
}
+static EGLDisplay
+_cogl_winsys_egl_get_display (void *native)
+{
+ EGLDisplay dpy = NULL;
+ const char *client_exts = eglQueryString (NULL, EGL_EXTENSIONS);
+
+ if (g_strstr_len (client_exts, -1, "EGL_KHR_platform_base"))
+ {
+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
+ (void *) eglGetProcAddress ("eglGetPlatformDisplay");
+
+ if (get_platform_display)
+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
+
+ if (dpy)
+ return dpy;
+ }
+
+ if (g_strstr_len (client_exts, -1, "EGL_EXT_platform_base"))
+ {
+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
+ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT");
+
+ if (get_platform_display)
+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
+
+ if (dpy)
+ return dpy;
+ }
+
+ return eglGetDisplay ((EGLNativeDisplayType) native);
+}
+
static CoglBool
_cogl_winsys_renderer_connect (CoglRenderer *renderer,
CoglError **error)
@@ -277,8 +310,7 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
if (!_cogl_xlib_renderer_connect (renderer, error))
goto error;
- egl_renderer->edpy =
- eglGetDisplay ((EGLNativeDisplayType) xlib_renderer->xdpy);
+ egl_renderer->edpy = _cogl_winsys_egl_get_display (xlib_renderer->xdpy);
if (!_cogl_winsys_egl_renderer_connect_common (renderer, error))
goto error;
diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c
index 2093e09..b0d11c0 100644
--- a/src/backends/native/meta-renderer-native.c
+++ b/src/backends/native/meta-renderer-native.c
@@ -222,6 +222,39 @@ meta_onscreen_native_queue_swap_notify (CoglOnscreen *onscreen)
onscreen_native->pending_swap_notify = TRUE;
}
+static EGLDisplay
+meta_egl_get_display (void *native)
+{
+ EGLDisplay dpy = NULL;
+ const char *client_exts = eglQueryString (NULL, EGL_EXTENSIONS);
+
+ if (g_strstr_len (client_exts, -1, "EGL_KHR_platform_base"))
+ {
+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
+ (void *) eglGetProcAddress ("eglGetPlatformDisplay");
+
+ if (get_platform_display)
+ dpy = get_platform_display (EGL_PLATFORM_GBM_MESA, native, NULL);
+
+ if (dpy)
+ return dpy;
+ }
+
+ if (g_strstr_len (client_exts, -1, "EGL_EXT_platform_base"))
+ {
+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
+ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT");
+
+ if (get_platform_display)
+ dpy = get_platform_display (EGL_PLATFORM_GBM_MESA, native, NULL);
+
+ if (dpy)
+ return dpy;
+ }
+
+ return eglGetDisplay ((EGLNativeDisplayType) native);
+}
+
static CoglBool
meta_renderer_native_connect (CoglRenderer *cogl_renderer,
CoglError **error)
@@ -246,8 +279,7 @@ meta_renderer_native_connect (CoglRenderer *cogl_renderer,
goto fail;
}
- egl_renderer->edpy =
- eglGetDisplay ((EGLNativeDisplayType) renderer_native->gbm);
+ egl_renderer->edpy = meta_egl_get_display (renderer_native->gbm);
if (egl_renderer->edpy == EGL_NO_DISPLAY)
{
_cogl_set_error (error, COGL_WINSYS_ERROR,
--
2.9.3

View File

@ -1,12 +0,0 @@
diff -Nur mutter-3.32.2.orig/src/backends/meta-egl.c mutter-3.23.2/src/backends/meta-egl.c
--- mutter-3.32.2.orig/src/backends/meta-egl.c 2016-11-22 08:27:46.000000000 -0700
+++ mutter-3.23.2/src/backends/meta-egl.c 2016-11-24 11:14:48.612133544 -0700
@@ -141,7 +141,7 @@
error_str = get_egl_error_str ();
g_set_error (error, G_IO_ERROR,
- G_IO_ERROR_FAILED,
+ G_IO_ERROR_FAILED, "%s",
error_str);
}

View File

@ -4,8 +4,8 @@
%global libinput_version 1.4
Name: mutter
Version: 3.23.3
Release: 2%{?dist}
Version: 3.23.90
Release: 1%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
@ -13,13 +13,7 @@ License: GPLv2+
URL: http://www.gnome.org
Source0: http://download.gnome.org/sources/%{name}/3.23/%{name}-%{version}.tar.xz
# https://bugzilla.gnome.org/show_bug.cgi?id=772422
Patch0: 0001-Use-eglGetPlatformDisplay.patch
Patch1: startup-notification.patch
#
# Fix format security issue that prevents compiling under Fedora
#
Patch2: mutter-3.23.2-eglformat-security.patch
Patch0: startup-notification.patch
BuildRequires: chrpath
BuildRequires: pango-devel
@ -114,8 +108,6 @@ the functionality of the installed %{name} package.
%prep
%setup -q
#patch0 -p1
%patch1 -p1
%patch2 -p1
%build
autoreconf -f -i
@ -188,6 +180,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%{_datadir}/mutter/tests
%changelog
* Thu Feb 16 2017 Florian Müllner <fmuellner@redhat.com> - 3.23.90-1
- Update to 3.23.90
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.23.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

View File

@ -1 +1 @@
becc68c7f7b8645676b383f77ed09e84 mutter-3.23.2.tar.xz
SHA512 (mutter-3.23.90.tar.xz) = 77a1a227815b25226233585301497d2a2244169c25016eb29b598eb7a8fb9ed15ebf1f2abc37524ada58959a195a1753d611ca6e69801df94ea41e64e36fa6fe