File sddm-relaxed-auth.diff of Package sddm
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
index b40f718..e060928 100644
--- a/src/daemon/XorgDisplayServer.cpp
+++ b/src/daemon/XorgDisplayServer.cpp
@@ -277,6 +277,7 @@ namespace SDDM {
// set process environment
QProcessEnvironment env;
env.insert(QStringLiteral("DISPLAY"), m_display);
+ env.insert(QStringLiteral("XAUTHLOCALHOSTNAME"), daemonApp->hostName());
env.insert(QStringLiteral("HOME"), QStringLiteral("/"));
env.insert(QStringLiteral("PATH"), mainConfig.Users.DefaultPath.get());
env.insert(QStringLiteral("XAUTHORITY"), m_authPath);
diff --git a/src/helper/Backend.cpp b/src/helper/Backend.cpp
index 12facb9..a90cfb3 100644
--- a/src/helper/Backend.cpp
+++ b/src/helper/Backend.cpp
@@ -26,6 +26,7 @@
#include "UserSession.h"
#include <QtCore/QProcessEnvironment>
+#include <QtNetwork/QHostInfo>
#include <pwd.h>
@@ -64,6 +65,7 @@ namespace SDDM {
env.insert(QStringLiteral("LOGNAME"), QString::fromLocal8Bit(pw->pw_name));
if (env.contains(QStringLiteral("DISPLAY")) && !env.contains(QStringLiteral("XAUTHORITY")))
env.insert(QStringLiteral("XAUTHORITY"), QStringLiteral("%1/.Xauthority").arg(QString::fromLocal8Bit(pw->pw_dir)));
+ env.insert(QStringLiteral("XAUTHLOCALHOSTNAME"), QHostInfo::localHostName());
// TODO: I'm fairly sure this shouldn't be done for PAM sessions, investigate!
m_app->session()->setProcessEnvironment(env);
}