Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.0:Staging:D:DVD
sddm
0001-Move-Xauthority-to-a-different-location-an...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Move-Xauthority-to-a-different-location-and-truncate.patch of Package sddm
From 87ff59b5558c3df9384a1d55590a53b9aca74bd0 Mon Sep 17 00:00:00 2001 From: Fabian Vogt <fabian@ritter-vogt.de> Date: Thu, 30 Nov 2017 13:38:27 +0100 Subject: [PATCH] Move Xauthority to a different location and truncate it again When the hostname changes, started X applications try the new hostname first. If a cookie is found for that new hostname, they try to authenticate (which fails) and exit. So .Xauthority must not contain old cookies. Truncating ~/.Xauthority breaks ssh forwarding though, so the default location is changed to something sddm specific. As it's not possible to login twice as the same user simultaneously, a fixed path at a fixed location is enough. Issue #944 --- data/man/sddm.conf.rst.in | 2 +- src/common/Configuration.h | 2 +- src/daemon/XorgDisplayServer.cpp | 7 +++++-- src/helper/UserSession.cpp | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) Index: sddm-0.17.0/data/man/sddm.conf.rst.in =================================================================== --- sddm-0.17.0.orig/data/man/sddm.conf.rst.in +++ sddm-0.17.0/data/man/sddm.conf.rst.in @@ -119,7 +119,7 @@ OPTIONS `UserAuthFile=` Path to the Xauthority file, relative to the home directory. - Default value is ".Xauthority". + Default value is ".local/share/sddm/.Xauthority". `DisplayCommand=` Path of script to execute when starting the display server. Index: sddm-0.17.0/src/common/Configuration.h =================================================================== --- sddm-0.17.0.orig/src/common/Configuration.h +++ sddm-0.17.0/src/common/Configuration.h @@ -65,7 +65,7 @@ namespace SDDM { Entry(SessionDir, QString, _S("/usr/share/xsessions"), _S("Directory containing available X sessions")); Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file")); - Entry(UserAuthFile, QString, _S(".Xauthority"), _S("Path to the Xauthority file")); + Entry(UserAuthFile, QString, _S(".local/share/sddm/.Xauthority"), _S("Path to the Xauthority file")); Entry(DisplayCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xsetup"), _S("Path to a script to execute when starting the display server")); Entry(DisplayStopCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xstop"), _S("Path to a script to execute when stopping the display server")); Entry(MinimumVT, int, MINIMUM_VT, _S("The lowest virtual terminal number that will be used.")); Index: sddm-0.17.0/src/daemon/XorgDisplayServer.cpp =================================================================== --- sddm-0.17.0.orig/src/daemon/XorgDisplayServer.cpp +++ sddm-0.17.0/src/daemon/XorgDisplayServer.cpp @@ -91,9 +91,12 @@ namespace SDDM { // log message qDebug() << "Adding cookie to" << file; - // Touch file + // Create and truncate the file + QFileInfo finfo(file); + QDir().mkpath(finfo.absolutePath()); + QFile file_handler(file); - file_handler.open(QIODevice::Append); + file_handler.open(QIODevice::WriteOnly); file_handler.close(); QString cmd = QStringLiteral("%1 -f %2 -q").arg(mainConfig.X11.XauthPath.get()).arg(file); Index: sddm-0.17.0/src/helper/UserSession.cpp =================================================================== --- sddm-0.17.0.orig/src/helper/UserSession.cpp +++ sddm-0.17.0/src/helper/UserSession.cpp @@ -174,12 +174,12 @@ namespace SDDM { qDebug() << "Adding cookie to" << file; - // create the path + // Create and truncate the file QFileInfo finfo(file); QDir().mkpath(finfo.absolutePath()); QFile file_handler(file); - file_handler.open(QIODevice::Append); + file_handler.open(QIODevice::WriteOnly); file_handler.close(); QString cmd = QStringLiteral("%1 -f %2 -q").arg(mainConfig.X11.XauthPath.get()).arg(file);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor