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; }
