Bug 240804 - x11/xfce4-screensaver: Newly Installed via pkg upgrade Does Not Allow Password Input and xscreensaver No Longer Function Forcing User to Reboot Frequently and/or Data Loss
Summary: x11/xfce4-screensaver: Newly Installed via pkg upgrade Does Not Allow Passwor...
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: freebsd-xfce mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-25 04:18 UTC by John
Modified: 2019-09-30 13:31 UTC (History)
2 users (show)

See Also:
madpilot: maintainer-feedback+


Attachments
Console from boot time with pkg list and pkg upgrade leading to bug (86.11 KB, text/plain)
2019-09-25 04:18 UTC, John
no flags Details
Current XFCE Current XFCE4 Startup Configuration post xfce4-screensaver-0.1.8 install via pkg upgrade (111.45 KB, image/png)
2019-09-25 08:45 UTC, John
no flags Details
CLI output XFCE startup configuration files and contents of two different screensaver applications in xfce4 autostart configuration (15.14 KB, text/plain)
2019-09-25 11:32 UTC, John
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description John 2019-09-25 04:18:54 UTC
Created attachment 207785 [details]
Console from boot time with pkg list and pkg upgrade leading to bug

After doing a pkg update 20190925 02:19+0000 UTC that performed many XFCE updates that seemed related to "Installed packages to be UPGRADED:" xfce: 4.12_1 -> 4.14 based set of updates there was "New packages to be INSTALLED:" xfce4-screensaver: 0.1.8.

The pkg upgrade proceed with no issues and the FreeBSD 11.3 based system was immediately rebooted by me not only due to the extent of the many upgraded XFCE4 packages, but there was an update for xorg-server: 1.18.4_11,1 -> 1.18.4_12,1.

The reboot and CLI startx (to start xfce4 by default) proceeded just fine, and clearly a new look an feel for XFCE4.  I was away from the machine for a bit and opon return instead of the xscreensaver-5.43_1 screen that was always displayed when the XFCE4 needed to be unlocked with xfce-4.12_1 a lockscreen clearly fome XFCE (xfce4-screensaver-0.1.8) displayed.  xfce4-screensaver-0.1.8 would not accept any keyboard input and therefore unable to unlock the XFCE4 session.

Was forced to reboot FreeBSD system with data loss of data not able to access and not saved as not expecting a completely different and likely conflicting with xscreensaver-5.43_1 situation.

Unable to find any settings for xfce4-screensaver-0.1.8 via settings menu that would make sense of xfce4-screensaver-0.1.8 and xscreensaver-5.43_1 co-existing.  This XFCE4 related update makes the use of the system completely useless and makes using FreeBSD DE useless.

File of the updates done is attached.

I do not have a working phone SD card that would have allowed taking a video of the issue with the xfce4-screensaver not accepting any keyboard input for password in the widget for password (as xscreensaver also has).
Comment 1 Guido Falsi freebsd_committer 2019-09-25 08:09:44 UTC
Hi,

I'm sorry for the problem you're experiencing.

I never encountered this during my testing of XFCE 4.14.

To change the screen saver used by the desktop you should go to the Session and Startup configuration utility (available in the settings menu). In the Application Autostart tab there should be lines for Screensaver and XScreenSaver. You should be able to disable the first and enable the second.

Could you try that?

If this does not work, I will see to stop xfce4-screensaver from installing by default, so as not to cause this anymore.
Comment 2 John 2019-09-25 08:36:43 UTC
(In reply to Guido Falsi from comment #1)
There is no xscreensaver entry in the XFCE autostart.  There are two entries, both ticked, listed as "Screensaver (Launch screensaver and locker program)."

I have not looked at this autostart since the first week after I  installed FreeBSD 11.3 mid July 2019 when I added gkrellm, and disabled Notes and Clipman.  This means I do not recall if xscreensaver was in the XFCE autostart then or prior to the pkg upgrade install that included a new install xfce4-screensaver: 0.1.8.

Please advise if both "Screensaver (Launch screensaver and locker program)." entries should be disabled and/or deleted and/or if I will need to add xscreensaver back in.  If I need to add screensaver back in will I need to add any options or such.  I have not used XFCE for some years, but used it for some years before I discovered LXDE about 7 years ago.  I liked LXDE very much.  Sadly LXDE does not work in FreeBSD even though LXDE works just fine in OpenBSD.
Comment 3 John 2019-09-25 08:45:05 UTC
Created attachment 207790 [details]
Current XFCE Current XFCE4 Startup Configuration post xfce4-screensaver-0.1.8 install via pkg upgrade

Added attachment of current XFCE4 startup configuration post xfce4-screensaver-0.1.8 install via pkg upgrade
Comment 4 Guido Falsi freebsd_committer 2019-09-25 09:41:35 UTC
(In reply to John from comment #3)

I See. Having two identical options is definitely not optimal.

For a test, could you try disabling the first one and check which screensaver stays active? The enable the first one and disable the second one and perform the same test?

If the two options appear identical but each controls a different screen saver I'll work out a way to differentiate the description.

Also, there must be a reason why xfce-screensaver can't take the keyboard focus but I have no idea how to debug that right now.
Comment 5 John 2019-09-25 10:19:22 UTC
(In reply to Guido Falsi from comment #4)
Agree having two identical "Screensaver (Launch screensaver and locker program)."
entries is likely not good.  Is there a file, obviously text file, that keeps this XFCE autostart configuration in it?  If so maybe best to find that file and attach its contents before making any XFCE4 startup configuration changes.  I have looked in the various directories of /home/keypunch/.config/xfce4 and cannot find any autostart relate files, let alone if text based.

As to the issue with the xfce4-screensaver not taking control of keyboard I assume you have not had that challenge in your testing.

2019-09-25 10:15:45+0000 UTC 1569406545 h440nndytpo3mqsdvcmtoeu3tppdnchwt85snd.h440nndytpo3mqsdvcmtoeu3tppdnchwt85snd 2 ~ $ ps -Alf | grep screen
1001 34725 12927   0  20  0    9444   3368 select S    v0   0:11.55 xscreensaver -no-splash
1001 40578 12927   0  20  0   42696  16816 select S    v0   0:01.05 xfce4-screensaver
2019-09-25 10:15:52+0000 UTC 1569406552 h440nndytpo3mqsdvcmtoeu3tppdnchwt85snd.h440nndytpo3mqsdvcmtoeu3tppdnchwt85snd 2 ~ $ 
  It appears both screensavers are running.  Is it possible this may have some root cause for who and when gets the screensaver keyboard?  Perhaps this means either one of the startup screensaver entries is for each or only one for both entries?

Were you using xcreensaver before you installed xfce4-screensaver for testing?
Comment 6 John 2019-09-25 11:32:49 UTC
Created attachment 207797 [details]
CLI output XFCE startup configuration files and contents of two different screensaver applications in xfce4 autostart configuration

I have found the XFCE files for the GUI interface to XFCE Autostart.  I do not understand how the timestamps of either screensaver file is not a 20190925 timestamps that is when I did the pkg upgrade.  One file is clearly for xscreensaver and another file clearly for xfce4-screensaver.  Separate bug #240810 and bug #240811 opened for duplicate name issue of two different screensavers for XFCE4 autostart.  Different issue to issue why this bug issue that xfce4-screensaver would not allow user to input user password to unlock xfce4-screensaver screen.
Comment 7 John 2019-09-25 13:16:56 UTC
I have isolated the issue, but I have been up all night dealing with various issues and discovering new unrelated issues I will need to document and open bugs for completely unrelated to this issue.  Once I have had my meal I will need have some much needed sleep.  In next 24 hours I will document the cause of the issue and solution.
Comment 8 Guido Falsi freebsd_committer 2019-09-25 15:42:04 UTC
(In reply to John from comment #7)

As I said in the other bug, thanks for hunting this down.

Regarding this original issue, I'd like to know if disabling one of the two (apparently identical) options solved the issue by really disabling one of the two screen savers.

Another step will be explaining to XFCE to have a preference for one of them

It is quite possible that having two screen savers running simultaneously one has grabbed the keyboard from the other.
Comment 9 Guido Falsi freebsd_committer 2019-09-25 19:11:50 UTC
After investigation I'm positively sure the problem is about the .desktop files installed in PREFIX/etc/xdg/autostart by the xfce4-session and xfce4-screensaver ports.

First and easy thing to do is make one of them disabled by default. I'll do that for xscreensaver, being xfce4-screensaver the xfce default.

The descriptions will stay the same since I don't have an easy way to patch the localized .desktop file. But I'm also studying a solution for that.
Comment 10 John 2019-09-26 05:33:14 UTC
(In reply to Guido Falsi from comment #8)
It was a very unexpected long day as result of multiple FreeBSD bugs.  I still have few to open unrelated to this issue.  I was not up again until late today and have a number of eMail I needed to do and updates related bug #240801 and bug # 240811.  I was so tired I really made a mess of what was to be two simple updates to bug #240810.

Before I was to bed I made the changes to the XFCE .desktop files for autostart as per bug #240810 and but #240810.  The tests are time consuming as there are reboots and waiting time for the screensaver to activate.

I then enabled xscreensaver and disabled xfce4-screensaver.  xscreensaver as I  have been used to since installing FreeBSD mid July 2019 as had been since the FreeBSD install.

Then I flipped to enabling xfce4-screensaver and disabling xscreensaver.  xfce4-screensaver worked which means it accepted keyboard input.

I went to sleep, way too tired to do anything else.

A short time ago I was able to clear/save what I was working on at time to do the next test of both xscreensaver and xfce4-screensaver active at same time.  The bug issue as reported and first experienced after the FreeBSD pkg upgrade occurred.

I changed the XFCE4 startup to enabled for xfce4-screensaver and disabled for xscreensaver on purpose rahter than xscreensaver I have used for years on purpose.  Something odd I think is occurring with xfce4-screensaver, but I am not sure so it will take a few days on using xfce4-screensaver before I know it this odd behaviour I think occurred occurs again.  If the od behaviour occurs again it will be a new bug report as it will be a very different issue.

When xscreensaver and xfce-screensaver are enabled xfce4-screensaver takes presendance in displaying ove xscreensaver on system when some mouse or keyboard action wakes up the screensaver.  As you suspected (an made sense to me) with xscreensaver and xfce4-screensaver enabled is preventing keyboard input reaching xfce4-screensaver and appears does not reach the hidden from display xscreensaver that xfce4-screensaver os layered overtop on system.

The question now is how should xfce handle two or more different screensavers on the system?  In my opinion there are different pros and cons for any of the possible solutions.  One aspect to take into consideration is xscreensaver works on multiple DEs where as xfce4-screensaver likely only works with XFCE4.  For those that have multiple DEs they can and do use it would seem likely, but not a sure thing, that xscreensaver should take precedence as the screensaver enabled for the DE, ergo precedence for XFCE4.  This is just one thought of a few approaches that I think merits some discussion to see what seems the best approach to take.  I suspect this may be difficult discussion in that I can see many approaches that may makes sense as well.  I suggested the rational for xscreensaver based on xscreensaver most likely works in most, if not all DEs.  That said discussion should occur to see what other thoughts are and the pros/cons of those before deciding what approach will be taken.
Comment 11 John 2019-09-26 05:35:16 UTC
Typo correction to last update I made should be "bug #240810" not "but #240810"

Before I was to bed I made the changes to the XFCE .desktop files for autostart as per bug #240810 and bug #240810.  The tests are time consuming as there are reboots and waiting time for the screensaver to activate.
Comment 12 Guido Falsi freebsd_committer 2019-09-26 08:01:00 UTC
(In reply to John from comment #10)

Please don't rush things.

You created 3 bug reports for the same issue, one referencing a port which is only marginally related to the issue (xscreensaver), since it's not installing any file causing it. This is strictly an XFCE problem.

Please let's keep the conversation in one place only. This is one bug. with two strictly related problems.

- xfce installs two .desktop files (one via xfce4-session port and one via the xfce4-screensaver port) which launch screensaver applications and, if both are installed, both are lunched simultaneously. This setup cannot work

- to make things worse, the GUI to choose which one is enabled ends up with the same description for both of them.

I already filed a bug report upstream with xfce4-screensaver [1] asking to change the name in the desktop file. That's enough. I think that your changes are too invasive and would not be accepted upstream. Also you patch is touching the wrong file. Anyway if you want to push to upstream for your changes, I'd suggest you followup to my bug report there with a correct patch relative to their sources.

My plan is to change the description with a little brutal (in relation to the translations [2]) patch to the xfce4-screensaver .desktop file, so as to get different descriptions, and make xfce4-session install the xscreensaver .desktop file disabled, and add a note in UPDATING.

This logic is due to the fact that the xfce metaport installs xfce4-screensaver by default, so having the default xscreensaver.desktop file enabled by default would cause the issue to appear for everybody.

I need some time to test all this and I'll also be away for a few days, so I don't think I'll be able to commit a fix before monday.

The other option is to revert the xfce metaport to depending on xscreensaver as before and let people manually install xfce4-screensaver if they want to. But since xfce now has it's own screensaver component this does not look optimal.

Somewhere in your messages you ask me not to disable xscreensaver by default...why? Having BOTH enabled cannot work.


[1] https://bugzilla.xfce.org/show_bug.cgi?id=15991, referenced in bug #240811

[2] we can't only patch the English version and wait for xfce to translate it, this would require a lot of time, and in the while translated versions would get the same text anyway. Also any proposed name/description change we send to xfce for inclusion needs to be accepted there, which we can't force
Comment 13 commit-hook freebsd_committer 2019-09-27 09:01:18 UTC
A commit references this bug:

Author: madpilot
Date: Fri Sep 27 09:00:34 UTC 2019
New revision: 513008
URL: https://svnweb.freebsd.org/changeset/ports/513008

Log:
  - Make xfce4-session install the xscreensaver.desktop session startup
    file disabled by default
  - Modify name of program in .desktop file for xfce4-screensaver,
    so that the UI does not show two identical lines when both it and
    xscreensaver are installed
  - Add UPDATING note and update xfce4-session pkg-message to explain
    the issue to users

  PR:		240804, 240810, 240811
  Submitted by:	John <jlmales@gmail.com>

Changes:
  head/UPDATING
  head/x11/xfce4-screensaver/Makefile
  head/x11-wm/xfce4-session/Makefile
  head/x11-wm/xfce4-session/files/patch-scripts_xscreensaver.desktop.in
  head/x11-wm/xfce4-session/files/pkg-message.in
Comment 14 Guido Falsi freebsd_committer 2019-09-27 09:06:13 UTC
I have committed a quick fix which should prevent users being bitten by this issue when upgrading.

I pushed it now because I'd rather have a fix in the tree before 2019Q4 is branched and XFCE 4.14 is unleashed on quarterly package users.

I'm leaving this bug open for the time being so that further improvements to the solution can be discussed here.
Comment 15 John 2019-09-29 02:04:18 UTC
(In reply to Guido Falsi from comment #12)
Re <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240804#c12> "Somewhere in your messages you ask me not to disable xscreensaver by default...why? Having BOTH enabled cannot work."

Re <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240804#c10>

"The question now is how should xfce handle two or more different screensavers on the system?  In my opinion there are different pros and cons for any of the possible solutions.  One aspect to take into consideration is xscreensaver works on multiple DEs where as xfce4-screensaver likely only works with XFCE4.  For those that have multiple DEs they can and do use it would seem likely, but not a sure thing, that xscreensaver should take precedence as the screensaver enabled for the DE, ergo precedence for XFCE4.  This is just one thought of a few approaches that I think merits some discussion to see what seems the best approach to take.  I suspect this may be difficult discussion in that I can see many approaches that may makes sense as well.  I suggested the rational for xscreensaver based on xscreensaver most likely works in most, if not all DEs.  That said discussion should occur to see what other thoughts are and the pros/cons of those before deciding what approach will be taken."