d/p/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch:
add proposed patch from upstream Bugzilla to let GDK X11 initialization complete successfully when libGL.so.1 is not available (Closes: #847366)
This commit is contained in:
		
							
								
								
									
										9
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@ -1,3 +1,12 @@
 | 
			
		||||
gtk+3.0 (3.22.7-2) UNRELEASED; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * d/p/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch:
 | 
			
		||||
    add proposed patch from upstream Bugzilla to let GDK X11
 | 
			
		||||
    initialization complete successfully when libGL.so.1 is not
 | 
			
		||||
    available (Closes: #847366)
 | 
			
		||||
 | 
			
		||||
 -- Simon McVittie <smcv@debian.org>  Fri, 20 Jan 2017 21:38:48 +0000
 | 
			
		||||
 | 
			
		||||
gtk+3.0 (3.22.7-1) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * New upstream release.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										58
									
								
								debian/patches/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								debian/patches/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
			
		||||
From 1fb5f0aed9976437d8c9c82071efe9a447d73de1 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Emmanuele Bassi <ebassi@gnome.org>
 | 
			
		||||
Date: Fri, 20 Jan 2017 18:07:01 +0000
 | 
			
		||||
Subject: [PATCH] gdk/x11: Check if we have access to GL before using GLX API
 | 
			
		||||
 | 
			
		||||
If the platform does not have access to libGL then any call to GL and
 | 
			
		||||
GLX API through libepoxy will fail with an assertion. Until such time
 | 
			
		||||
that libepoxy exposes API for us to use, we can simply dlopen libGL
 | 
			
		||||
ourselves and do a symbol check.
 | 
			
		||||
 | 
			
		||||
[smcv: fix typo]
 | 
			
		||||
 | 
			
		||||
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=775279
 | 
			
		||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847366
 | 
			
		||||
---
 | 
			
		||||
 gdk/x11/gdkglcontext-x11.c | 26 ++++++++++++++++++++++++++
 | 
			
		||||
 1 file changed, 26 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/gdk/x11/gdkglcontext-x11.c b/gdk/x11/gdkglcontext-x11.c
 | 
			
		||||
index 0819f89648..d8ddf0fe19 100644
 | 
			
		||||
--- a/gdk/x11/gdkglcontext-x11.c
 | 
			
		||||
+++ b/gdk/x11/gdkglcontext-x11.c
 | 
			
		||||
@@ -854,6 +854,32 @@ gdk_x11_screen_init_gl (GdkScreen *screen)
 | 
			
		||||
   if (_gdk_gl_flags & GDK_GL_DISABLE)
 | 
			
		||||
     return FALSE;
 | 
			
		||||
 
 | 
			
		||||
+  /* This is an ad hoc check that bypasses libepoxy to check if libGL.so is
 | 
			
		||||
+   * unavailable, and disables GL support if that's the case
 | 
			
		||||
+   *
 | 
			
		||||
+   * Ideally, libepoxy should do this for us, but that would require adding
 | 
			
		||||
+   * new API, and we'd need a fallback anyway.
 | 
			
		||||
+   */
 | 
			
		||||
+  {
 | 
			
		||||
+    Bool (* fp_glXQueryExtension) (Display *dpy, int *err_base, int *ev_base);
 | 
			
		||||
+    GModule *module = g_module_open ("libGL.so.1", 0);
 | 
			
		||||
+
 | 
			
		||||
+    if (module == NULL)
 | 
			
		||||
+      {
 | 
			
		||||
+        GDK_NOTE (OPENGL, g_message ("No libGL.so found"));
 | 
			
		||||
+        return FALSE;
 | 
			
		||||
+      }
 | 
			
		||||
+
 | 
			
		||||
+    if (!g_module_symbol (module, "glXQueryExtension", (gpointer *) &fp_glXQueryExtension))
 | 
			
		||||
+      {
 | 
			
		||||
+        GDK_NOTE (OPENGL, g_message ("No glXQueryExtension symbol found"));
 | 
			
		||||
+        g_module_close (module);
 | 
			
		||||
+        return FALSE;
 | 
			
		||||
+      }
 | 
			
		||||
+
 | 
			
		||||
+    g_module_close (module);
 | 
			
		||||
+  }
 | 
			
		||||
+
 | 
			
		||||
   dpy = gdk_x11_display_get_xdisplay (display);
 | 
			
		||||
 
 | 
			
		||||
   if (!glXQueryExtension (dpy, &error_base, &event_base))
 | 
			
		||||
-- 
 | 
			
		||||
2.11.0
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								debian/patches/series
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/patches/series
									
									
									
									
										vendored
									
									
								
							@ -7,3 +7,4 @@
 | 
			
		||||
071_fix-installation-of-HTML-images.patch
 | 
			
		||||
no-accessibility-dump.patch
 | 
			
		||||
reftest-known-fail.patch
 | 
			
		||||
gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user