[Mageia-dev] Change in libx11 broke xscreensaver

David Walser luigiwalser at yahoo.com
Thu Apr 12 22:01:13 CEST 2012


This is explained in Bug 4742:
https://bugs.mageia.org/show_bug.cgi?id=4742

But to summarize, xscreensaver-demo in Cauldron does not work, it comes up with an empty list of screensavers.  This list comes from reading the "programs" entry of the /etc/X11/app-defaults/XScreenSaver file, which is read using the XrmGetResource API of libX11.

XrmGetResource calls XrmQGetResource (in src/Xrm.c) which starts by doing:
if (db && db->linfo.lock && *names) {

and if that is false, it refuses to even try to read the entry from the app-defaults file.  I ran xscreensaver-demo in gdb, and db->linfo.lock is 0, so this doesn't work.  In Mageia 1, XrmQGetResource starts with:
if (db && *names) {

and although db->linfo.lock is still 0, it doesn't matter and it works.

Can we patch our libx11 to go back to the old way, or is there a better way to fix this?  I don't have a deep understanding of the meaning of this code.  Maybe Thierry or someone else does?


More information about the Mageia-dev mailing list