Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xscreensaver for openSUSE:Factory 
checked in at 2026-06-22 18:05:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xscreensaver (Old)
 and      /work/SRC/openSUSE:Factory/.xscreensaver.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xscreensaver"

Mon Jun 22 18:05:25 2026 rev:86 rq:1360623 version:6.15

Changes:
--------
--- /work/SRC/openSUSE:Factory/xscreensaver/xscreensaver.changes        
2026-06-01 17:59:08.330211913 +0200
+++ /work/SRC/openSUSE:Factory/.xscreensaver.new.1956/xscreensaver.changes      
2026-06-22 18:05:48.798023543 +0200
@@ -1,0 +2,7 @@
+Sat Jun  6 22:00:46 UTC 2026 - Jonas Kvinge <[email protected]>
+
+- Add xscreensaver-screenfade.patch: don't abort in
+  openGL_context_for_window. Callers (e.g. the screen fade) treat
+  a NULL return as "GL is unavailable" and fall back gracefully
+
+-------------------------------------------------------------------

New:
----
  xscreensaver-screenfade.patch

----------(New B)----------
  New:
- Add xscreensaver-screenfade.patch: don't abort in
  openGL_context_for_window. Callers (e.g. the screen fade) treat
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xscreensaver.spec ++++++
--- /var/tmp/diff_new_pack.glyrXs/_old  2026-06-22 18:05:50.506083137 +0200
+++ /var/tmp/diff_new_pack.glyrXs/_new  2026-06-22 18:05:50.506083137 +0200
@@ -47,6 +47,7 @@
 # PATCH-FIX-OPENSUSE xscreensaver-unrecognized-opts.patch [email protected] -- 
Ignore selected unbrecognized options generated by %%configure.
 Patch46:        xscreensaver-unrecognized-opts.patch
 Patch47:        xscreensaver-systemd.patch
+Patch48:        xscreensaver-screenfade.patch
 BuildRequires:  automake
 BuildRequires:  bc
 BuildRequires:  gtkdoc

++++++ xscreensaver-screenfade.patch ++++++
diff --git a/hacks/glx/xlock-gl-utils.c b/hacks/glx/xlock-gl-utils.c
index 57c7f7b..04bef61 100644
--- a/hacks/glx/xlock-gl-utils.c
+++ b/hacks/glx/xlock-gl-utils.c
@@ -66,6 +66,11 @@ init_GL(ModeInfo * mi)
 # endif
 
   mi->glx_context = openGL_context_for_window (screen, window);
+  if (! mi->glx_context)
+    {
+      fprintf (stderr, "%s: couldn't create GL context\n", progname);
+      exit (1);
+    }
 
   /* Process the -background argument. */
   {
diff --git a/utils/visual-gl.c b/utils/visual-gl.c
index 263e464..09e822e 100644
--- a/utils/visual-gl.c
+++ b/utils/visual-gl.c
@@ -744,7 +744,7 @@ GLXContext openGL_context_for_window (Screen *screen, 
Window window)
   vi_in.visualid = XVisualIDFromVisual (visual);
   vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask,
                           &vi_in, &out_count);
-  if (! vi_out) abort ();
+  if (! vi_out) return NULL;
 
 # ifdef HAVE_EGL
   {
@@ -786,7 +786,11 @@ GLXContext openGL_context_for_window (Screen *screen, 
Window window)
       {
         fprintf (stderr, "%s: %d: eglGetPlatformDisplay failed (2)\n",
                  blurb(), screen_number (screen));
-        abort();
+        /* Don't abort: callers (e.g. the screen fade) treat a NULL return
+           as "GL is unavailable" and fall back gracefully. */
+        free (d);
+        XFree ((char *) vi_out);
+        return NULL;
       }
 
     get_egl_config (screen, d->egl_display, vid, &d->egl_config);
@@ -809,7 +813,11 @@ GLXContext openGL_context_for_window (Screen *screen, 
Window window)
         fprintf (stderr, "%s: %d: eglCreatePlatformWindowSurface failed:"
                  " window 0x%lx visual 0x%x\n",
                  blurb(), screen_number (screen), window, vid);
-        abort();
+        /* Don't abort: callers (e.g. the screen fade) treat a NULL return
+           as "GL is unavailable" and fall back gracefully. */
+        free (d);
+        XFree ((char *) vi_out);
+        return NULL;
       }
 
 #ifdef HAVE_JWZGLES
@@ -851,14 +859,27 @@ GLXContext openGL_context_for_window (Screen *screen, 
Window window)
       {
         fprintf (stderr, "%s: %d: eglCreateContext failed\n", blurb(),
                  screen_number (screen));
-        abort();
+        /* Don't abort: callers (e.g. the screen fade) treat a NULL return
+           as "GL is unavailable" and fall back gracefully. */
+        eglDestroySurface (d->egl_display, d->egl_surface);
+        free (d);
+        XFree ((char *) vi_out);
+        return NULL;
       }
 
     /* describe_gl_visual (stderr, screen, visual, False); */
 
     if (! eglMakeCurrent (d->egl_display, d->egl_surface, d->egl_surface,
                           d->egl_context))
-      abort();
+      {
+        /* Don't abort: callers (e.g. the screen fade) treat a NULL return
+           as "GL is unavailable" and fall back gracefully. */
+        eglDestroyContext (d->egl_display, d->egl_context);
+        eglDestroySurface (d->egl_display, d->egl_surface);
+        free (d);
+        XFree ((char *) vi_out);
+        return NULL;
+      }
 
     egl_data_ret = d;
   }

Reply via email to