Bug 28421 - XScreensaver does not start new login screen
Summary: XScreensaver does not start new login screen
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 8
Hardware: All Linux
Priority: Normal minor
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA7TOO MGA7-64-OK MGA8-64-OK MGA7-32...
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2021-02-23 20:34 CET by Markus Robert Keßler
Modified: 2021-05-12 11:57 CEST (History)
7 users (show)

See Also:
Source RPM: xscreensaver-5.42-1.mga7.src.rpm, xscreensaver-5.45-1.mga8.tainted.src.rpm
CVE:
Status comment:


Attachments

Description Markus Robert Keßler 2021-02-23 20:34:40 CET
Description of problem:

MGA7x64, sddm, xfce4, XScreensaver
are working together fine with just one exception:

When XScreensaver is running, there appears a window, where you can enter your login password to unlock the screen,
or you can click on "New login" to start a new greeter and start a new session under a different user.

But doing so, nothing will happen.

Reason behind:
There's a file missing, which should be in every user home:
~/.Xresources =
xscreensaver.newLoginCommand: dm-tool switch-to-greeter

If this file is present, "New login" works perfectly.

So, I recommend to put .Xresources into /etc/skel, so during "useradd" this file will be copied to the new user home, also.
Morgan Leijström 2021-02-23 22:21:49 CET

CC: (none) => fri

Lewis Smith 2021-02-24 08:45:19 CET

See Also: (none) => https://bugs.mageia.org/show_bug.cgi?id=28222

Comment 1 Lewis Smith 2021-02-24 09:01:47 CET
Thank you for this report.
See also bug 28222.
https://bugs.mageia.org/attachment.cgi?id=12265 shows the wakeup dialogue.

Trying this new bug as described on M8, SDDM, Xfce, it also happens.
 xscreensaver-5.45-1.mga8.tainted
After clicking the "New login" button, it becomes greyed, there are two lines of error message (too long to transcribe) in yellow at the top of the screen, nothing more happens. The normal password box works.
I tried the remedy given above:
 $ cat ~/.Xresources
 xscreensaver.newLoginCommand: dm-tool switch-to-greeter
but without trying logout/in, it changed nothing. I wil do that.

Assigning this to NicolasS who already has the earlier bug.

Version: 7 => 8
Assignee: bugsquad => nicolas.salguero
Whiteboard: (none) => MGA7TOO
Source RPM: xscreensaver-5.42-1.mga7.src.rpm => xscreensaver-5.42-1.mga7.src.rpm, xscreensaver-5.45-1.mga8.tainted.src.rpm

Comment 2 Lewis Smith 2021-02-24 09:27:05 CET
On M8, SDDM, LXDE, after having logged out/in,
 $ cat ~/.Xresources
 xscreensaver.newLoginCommand: dm-tool switch-to-greeter
waking up the locked screen and clicking 'New login' does *not* show any yellow error message, but re-shows the main login screen. So the fix apparently works.

@Markus : Is this what you expect to happen?

Alas, I do not have a second user to try the effect of logging in to that. Re-logging in to the same user returns to the xscreensaver screen.
Comment 3 Markus Robert Keßler 2021-02-24 19:38:38 CET
Hi Lewis,
yes, it's exactly like this.
I have put the .Xresources file to a certain user home, and after logging in into this account, I could start XScreensaver and use "New login" sucessfully.
B.t.w., why don't you just create a new test user for that purpose?
I have created plenty of them for testing things like that...
Thanks,
best regards,
Markus
Comment 4 Nicolas Salguero 2021-04-30 15:16:44 CEST
Suggested advisory:
========================

The updated packages allow XScreensaver to start new login screen.

References:
https://bugs.mageia.org/show_bug.cgi?id=28421
========================

Updated packages in 7/{core|tainted}/updates_testing:
========================
xscreensaver-5.42-1.1.mga7
xscreensaver-base-5.42-1.1.mga7
xscreensaver-common-5.42-1.1.mga7
xscreensaver-gl-5.42-1.1.mga7
xscreensaver-extrusion-5.42-1.1.mga7

xscreensaver-5.42-1.1.mga7.tainted
xscreensaver-base-5.42-1.1.mga7.tainted
xscreensaver-common-5.42-1.1.mga7.tainted
xscreensaver-gl-5.42-1.1.mga7.tainted
xscreensaver-matrix-5.42-1.1.mga7.tainted
xscreensaver-extrusion-5.42-1.1.mga7.tainted

from SRPMS:
xscreensaver-5.42-1.1.mga7.src.rpm
xscreensaver-5.42-1.1.mga7.tainted.src.rpm

Updated packages in 8/{core|tainted}/updates_testing:
========================
xscreensaver-5.45-1.1.mga8
xscreensaver-base-5.45-1.1.mga8
xscreensaver-common-5.45-1.1.mga8
xscreensaver-gl-5.45-1.1.mga8
xscreensaver-extrusion-5.45-1.1.mga8

xscreensaver-5.45-1.1.mga8.tainted
xscreensaver-base-5.45-1.1.mga8
xscreensaver-common-5.45-1.1.mga8.tainted
xscreensaver-gl-5.45-1.1.mga8.tainted
xscreensaver-matrix-5.45-1.1.mga8.tainted
xscreensaver-extrusion-5.45-1.1.mga8.tainted

from SRPMS:
xscreensaver-5.45-1.1.mga8.src.rpm
xscreensaver-5.45-1.1.mga8.tainted.src.rpm

Status: NEW => ASSIGNED
Assignee: nicolas.salguero => qa-bugs

Comment 5 PC LX 2021-05-01 23:35:37 CEST
Bug confirmed on this workstation.

Update installed but did not fix the issue. Using SDDM and LXQt.

The dm-tool referenced in the fix is part of the lightdm package. This fix will not work if the lightdm package is not installed.

For SDDM there is a suggestion here using dbus but it did not work correctly for me.


System: Mageia 7, x86_64, LXQt, SDDM, Intel CPU, nVidia GPU using nvidia-current proprietary driver.


$ uname -a
Linux marte 5.10.33-desktop-1.mga7 #1 SMP Thu Apr 29 14:25:20 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ rpm -qa | grep xscreensaver
xscreensaver-common-5.42-1.1.mga7.tainted
xscreensaver-5.42-1.1.mga7.tainted
$ LANGUAGE=C rpm -q lightdm
package lightdm is not installed
$ urpmf --files /dm-tool | sort -u
lightdm:/usr/bin/dm-tool
lightdm:/usr/share/bash-completion/completions/dm-tool
lightdm:/usr/share/man/man1/dm-tool.1.xz

CC: (none) => mageia
Keywords: (none) => feedback

Comment 6 Dave Hodgins 2021-05-02 00:16:49 CEST
Shouldn't it be running /usr/bin/sddm-greeter ?

CC: (none) => davidwhodgins

Comment 7 Dave Hodgins 2021-05-02 00:19:16 CEST
Also, it shouldn't require ~/.Xresources settings, but should be fixed in sddm
itself.
Comment 8 PC LX 2021-05-02 00:23:01 CEST
(In reply to Dave Hodgins from comment #6)
> Shouldn't it be running /usr/bin/sddm-greeter ?

Does not seem so.

(In reply to Dave Hodgins from comment #7)
> Also, it shouldn't require ~/.Xresources settings, but should be fixed in
> sddm itself.

The issue is in xscreensaver and how it handles a "new login" by default.
Comment 9 Dave Hodgins 2021-05-02 01:55:22 CEST
Any changes to fix it must work in all desktop environments, with all desktop
managers, and must not requires changes to the user's home directory which may
or may not be accessible during installation of an update. Changes to /etc/skel
must be compatible with a base-system-minimal installation with no gui. Also
note that changes to /etc/skel do not affect existing users.
Nicolas Salguero 2021-05-02 16:58:17 CEST

CC: (none) => nicolas.salguero

Comment 10 Nicolas Salguero 2021-05-02 17:06:09 CEST
Hi,

The fix is taken from Fedora.  It is a wrapper script (/usr/libexec/xscreensaver/xscreensaver-newlogin-wrapper) but I think it lacks support for sddm.

If someone knows the command for sddm, it will be easy to add it to the script.

Best regards,

Nico.
Comment 11 PC LX 2021-05-03 01:57:33 CEST
The script "/usr/libexec/xscreensaver/xscreensaver-newlogin-wrapper" has the following lines that provide support for sddm.

##########################################
check_manager_and_exec "sddm" \
        "qdbus --system org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter"
##########################################

But for this script to work, the file /etc/X11/app-defaults/XScreenSaver needs to be changed so that the following line

##############################################
! *newLoginCommand:     gdmflexiserver -ls
##############################################

is replaced with

##############################################
*newLoginCommand: /usr/libexec/xscreensaver/xscreensaver-newlogin-wrapper
##############################################

Tested on workstation using sddm.
Comment 12 Nicolas Salguero 2021-05-03 10:47:52 CEST
Suggested advisory:
========================

The updated packages allow XScreensaver to start new login screen.

References:
https://bugs.mageia.org/show_bug.cgi?id=28421
========================

Updated packages in 7/{core|tainted}/updates_testing:
========================
xscreensaver-5.42-1.2.mga7
xscreensaver-base-5.42-1.2.mga7
xscreensaver-common-5.42-1.2.mga7
xscreensaver-gl-5.42-1.2.mga7
xscreensaver-extrusion-5.42-1.2.mga7

xscreensaver-5.42-1.2.mga7.tainted
xscreensaver-base-5.42-1.2.mga7.tainted
xscreensaver-common-5.42-1.2.mga7.tainted
xscreensaver-gl-5.42-1.2.mga7.tainted
xscreensaver-matrix-5.42-1.2.mga7.tainted
xscreensaver-extrusion-5.42-1.2.mga7.tainted

from SRPMS:
xscreensaver-5.42-1.2.mga7.src.rpm
xscreensaver-5.42-1.2.mga7.tainted.src.rpm

Updated packages in 8/{core|tainted}/updates_testing:
========================
xscreensaver-5.45-1.2.mga8
xscreensaver-base-5.45-1.2.mga8
xscreensaver-common-5.45-1.2.mga8
xscreensaver-gl-5.45-1.2.mga8
xscreensaver-extrusion-5.45-1.2.mga8

xscreensaver-5.45-1.2.mga8.tainted
xscreensaver-base-5.45-1.2.mga8
xscreensaver-common-5.45-1.2.mga8.tainted
xscreensaver-gl-5.45-1.2.mga8.tainted
xscreensaver-matrix-5.45-1.2.mga8.tainted
xscreensaver-extrusion-5.45-1.2.mga8.tainted

from SRPMS:
xscreensaver-5.45-1.2.mga8.src.rpm
xscreensaver-5.45-1.2.mga8.tainted.src.rpm

Keywords: feedback => (none)

Comment 13 PC LX 2021-05-03 18:38:41 CEST
Installed and tested without issues.


Tested with SDDM and LXQt DE.


System: Mageia 7, x86_64, Intel CPU, nVidia GPu using nvidia-current proprietary driver.


$ uname -a
Linux marte 5.10.33-desktop-1.mga7 #1 SMP Thu Apr 29 14:25:20 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ rpm -qa | grep xscreensaver
xscreensaver-5.42-1.2.mga7.tainted
xscreensaver-common-5.42-1.2.mga7.tainted

Whiteboard: MGA7TOO => MGA7TOO MGA7-64-OK

Comment 14 Thomas Andrews 2021-05-05 16:01:34 CEST
I haven't used a screensaver in years, so I may not be doing something correctly, but...

VirtualBox MGA8-32 Xfce session, completely non-tainted, using sddm.

This system was updated successfully from an old Cauldron test install from the Live iso. The xscreensaver and sddm packages were not installed, but installed without issue. Switched to sddm and set up xscreensaver. It took a while to figure out how to invoke the fault, but eventually I was able to do it. Clicking on the "new login" button grayed it out, but there was no other response.

Used qarepo to get the non-tainted packages in Comment 12. No installation issues. I wasn't clear on whether a reboot was needed to invoke the changes, so I did one anyway.

It doesn't work. Clicking on the "new login" button brings up the error described in Comment 11. I have not yet tested the 32-bit tainted version.

CC: (none) => andrewsfarm

Comment 15 Nicolas Salguero 2021-05-05 16:16:27 CEST
Hi,

If you have a ~/.xscreensaver file, you need to remove it. I think the package may need a file stating that but I do not know how to do it.

Best regards,

Nico.
Comment 16 Thomas Andrews 2021-05-05 18:55:09 CEST
Tried that, and it didn't help, but, after looking at the error message again, and looking at the two scripts listed in Comment 11, it seems that my install couldn't find the file/command "qdbus." /usr/bin/qdbus is contained in qttools5-qtdbus, which was not installed on my system. Installing it let the "new login" button work.

It looks to me like qttools5-qtdbus ought to be a dependency of xscreensaver, if not already installed. (Actually, I think it perhaps ought to be a dependency of sddm, but that's getting above my pay grade. sddm does seem to work OK with Xfce without it.)

Going to try switching back to LightDM, and see what there is to see.
Comment 17 Thomas Andrews 2021-05-05 19:29:18 CEST
Working OK with LightDM, but is not working with XDM, and I don't see a command in "/usr/libexec/xscreensaver/xscreensaver-newlogin-wrapper" that addresses XDM.
Comment 18 Thomas Andrews 2021-05-05 20:45:00 CEST
Also tested the tainted version in a MGA7-32 XFCE guest. As originally installed from the Live iso, using LightDM, qttools5-qtdbus was not installed, nor was it installed as a dependency with sddm. But, it must be a dependency of xscreensaver if the "new login" button is to work with sddm.
Comment 19 Nicolas Salguero 2021-05-06 08:56:26 CEST
(In reply to Thomas Andrews from comment #17)
> Working OK with LightDM, but is not working with XDM, and I don't see a
> command in "/usr/libexec/xscreensaver/xscreensaver-newlogin-wrapper" that
> addresses XDM.

XDM does not offer a mechanism for switching user so it cannot be handled by the wrapper script sadly.
Comment 20 Nicolas Salguero 2021-05-06 09:13:35 CEST
(In reply to Thomas Andrews from comment #18)
> Also tested the tainted version in a MGA7-32 XFCE guest. As originally
> installed from the Live iso, using LightDM, qttools5-qtdbus was not
> installed, nor was it installed as a dependency with sddm. But, it must be a
> dependency of xscreensaver if the "new login" button is to work with sddm.

If you do not use sddm, you do not need qttools5-qtdbus so that package cannot be a dependency of xscreensaver.

For example, if you install task-lxde, you will have LXDM and xscreensaver whereas, if you install task-xfce, you will have lightdm and xscreensaver.

The wrapper script does its best trying to handle several display managers but cannot ensure it will work in all cases.
Comment 21 Thomas Andrews 2021-05-06 14:46:11 CEST
And if you install sddm but not xscreensaver, it appears that you don't need qttools5-qtdbus, either. It's only when the two are installed together that the situation comes up. I refer you to Comment 0:

"Description of problem:

MGA7x64, sddm, xfce4, XScreensaver
are working together fine with just one exception:"

That is the situation that prompted the bug, so that is the situation that I tested. It so happened that the only Xfce installs that I had were 32-bit, but that shouldn't make a difference. And I realize that the situation where sddm is added to an Xfce install later by itself is unlikely, but that doesn't mean it won't happen.

So what are we to do here? Pass this along, even though we know the situation that prompted the bug isn't fully fixed, and why, and open a new bug asking that qttools-qtbus be made a dependency of sddm?
Comment 22 Nicolas Salguero 2021-05-06 15:03:54 CEST
Hi,

Can you try replacing, in the wrapper script, the line:
qdbus --system org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter

by the following one:
dbus-send --system --dest=org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter

or maybe the following one:
dbus-send --print-reply --system --dest=org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter

If it works, qttools5-qtdbus dependency will not be a problem anymore as dbus-send is part of dbus package.  I will only have to update the wrapper script and push a new build in the BS.

Best regards,

Nico.
Comment 23 Thomas Andrews 2021-05-07 01:26:22 CEST
The first one didn't work, but the second one did, with MGA7 and the tainted xscreensaver, and with MGA8 and the non-tainted version. And, I made sure to remove qttools5-qtdbus before testing, just in case.
Comment 24 Nicolas Salguero 2021-05-07 08:30:36 CEST
Suggested advisory:
========================

The updated packages allow XScreensaver to start new login screen.

References:
https://bugs.mageia.org/show_bug.cgi?id=28421
========================

Updated packages in 7/{core|tainted}/updates_testing:
========================
xscreensaver-5.42-1.3.mga7
xscreensaver-base-5.42-1.3.mga7
xscreensaver-common-5.42-1.3.mga7
xscreensaver-gl-5.42-1.3.mga7
xscreensaver-extrusion-5.42-1.3.mga7

xscreensaver-5.42-1.3.mga7.tainted
xscreensaver-base-5.42-1.3.mga7.tainted
xscreensaver-common-5.42-1.3.mga7.tainted
xscreensaver-gl-5.42-1.3.mga7.tainted
xscreensaver-matrix-5.42-1.3.mga7.tainted
xscreensaver-extrusion-5.42-1.3.mga7.tainted

from SRPMS:
xscreensaver-5.42-1.3.mga7.src.rpm
xscreensaver-5.42-1.3.mga7.tainted.src.rpm

Updated packages in 8/{core|tainted}/updates_testing:
========================
xscreensaver-5.45-1.3.mga8
xscreensaver-base-5.45-1.3.mga8
xscreensaver-common-5.45-1.3.mga8
xscreensaver-gl-5.45-1.3.mga8
xscreensaver-extrusion-5.45-1.3.mga8

xscreensaver-5.45-1.3.mga8.tainted
xscreensaver-base-5.45-1.3.mga8
xscreensaver-common-5.45-1.3.mga8.tainted
xscreensaver-gl-5.45-1.3.mga8.tainted
xscreensaver-matrix-5.45-1.3.mga8.tainted
xscreensaver-extrusion-5.45-1.3.mga8.tainted

from SRPMS:
xscreensaver-5.45-1.3.mga8.src.rpm
xscreensaver-5.45-1.3.mga8.tainted.src.rpm

Whiteboard: MGA7TOO MGA7-64-OK => MGA7TOO

Comment 25 Thomas Andrews 2021-05-07 22:44:30 CEST
The xscreensaver-base package in the mga8 tainted list should have a ".tainted" on the end.

Seems to be working for 32-bits Xfce with sddm in both MGA7 and MGA8.

Whiteboard: MGA7TOO => MGA7TOO MGA7-32-OK MGA8-32-OK

Comment 26 Thomas Andrews 2021-05-08 00:31:39 CEST
Tested in a Vbox MGA8 lxQt guest with sddm. Working OK.

Whiteboard: MGA7TOO MGA7-32-OK MGA8-32-OK => MGA7TOO MGA7-32-OK MGA8-32-OK MGA8-64-OK

Comment 27 Thomas Andrews 2021-05-08 02:46:03 CEST
Tested in a MGA7 64-bit Xfce guest with LightDM and sddm. Works OK. Paid attention this time, and deleting the .xscreensaver file was unnecessary. However, a reboot, or possibly a logoff/logon to restart the xscreensaver session after the update was.

Validating. Advisory in Comment 24. Be aware that there are tainted and core packages in this update, and that one package in the list in Comment 24 is missing the ".tainted."

Whiteboard: MGA7TOO MGA7-32-OK MGA8-32-OK MGA8-64-OK => MGA7TOO MGA7-64-OK MGA8-64-OK MGA7-32-OK MGA8-32-OK
Keywords: (none) => validated_update
CC: (none) => sysadmin-bugs

Aurelien Oudelet 2021-05-10 13:03:04 CEST

CC: (none) => ouaurelien
Keywords: (none) => advisory

Comment 28 Mageia Robot 2021-05-12 11:57:53 CEST
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGAA-2021-0110.html

Status: ASSIGNED => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.