diff --git a/sddm-auth2.patch b/sddm-auth2.patch new file mode 100644 index 0000000..1bea83c --- /dev/null +++ b/sddm-auth2.patch @@ -0,0 +1,90 @@ +--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.cpp.auth2 2013-11-06 20:54:19.505419712 +0100 ++++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.cpp 2013-11-06 20:54:28.079461963 +0100 +@@ -158,6 +158,28 @@ namespace SDDM { + return true; + } + ++ QString AuthenticatorApp::requestDisplay() { ++ qDebug() << " AUTH: requestDisplay start"; ++ QDataStream inStream(&m_input); ++ QDataStream outStream(&m_output); ++ quint32 command = quint32(AuthMessages::AuthNone); ++ qDebug() << " AUTH: Requesting Display"; ++ QString display; ++ ++ outStream << quint32(AuthMessages::RequestDisplay); ++ ++ inStream >> command; ++ if (command != quint32(AuthMessages::Display)) { ++ qDebug() << " AUTH: Received out of order message" << command << "when waiting for SessionID"; ++ handleMessage(AuthMessages(command)); ++ return display; ++ } ++ inStream >> display; ++ ++ qDebug() << " AUTH: requestDisplay end"; ++ return display; ++ } ++ + void AuthenticatorApp::slotLoginFailed() { + QDataStream outStream(&m_output); + outStream << quint32(AuthMessages::LoginFailed); +--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.h.auth2 2013-11-06 20:54:15.730401120 +0100 ++++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.h 2013-11-06 20:54:48.392562174 +0100 +@@ -42,6 +42,7 @@ namespace SDDM { + QProcessEnvironment requestEnvironment(const QString &user); + int requestSessionId(); + bool requestCookieTo(const QString &path, const QString &user); ++ QString requestDisplay(); + + signals: + void started(const QString &user, const QString &session, const QString &password, bool passwordless); +--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/Method.cpp.auth2 2013-11-06 20:54:12.875387062 +0100 ++++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/Method.cpp 2013-11-06 20:54:29.735470126 +0100 +@@ -100,15 +100,17 @@ namespace SDDM { + + if (!m_pam) + return false; +-/* ++ ++ QString display = AuthenticatorApp::instance()->requestDisplay(); ++ + // set tty +- if (!m_pam->setItem(PAM_TTY, ":0")) ++ if (!m_pam->setItem(PAM_TTY, qPrintable(display))) + return false; + + // set display name +- if (!m_pam->setItem(PAM_XDISPLAY, ":0")) ++ if (!m_pam->setItem(PAM_XDISPLAY, qPrintable(display))) + return false; +-*/ ++ + // set username + if (!m_pam->setItem(PAM_USER, qPrintable(m_user))) + return false; +--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/daemon/Authenticator.cpp.auth2 2013-11-06 20:54:08.851367254 +0100 ++++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/daemon/Authenticator.cpp 2013-11-06 20:54:31.903480815 +0100 +@@ -106,6 +106,9 @@ namespace SDDM { + stream << quint32(AuthMessages::CookieLink); + break; + } ++ case AuthMessages::RequestDisplay: ++ stream << quint32(AuthMessages::Display) << m_display->name(); ++ break; + default: + qWarning() << " DAEMON: Child sent message type" << quint32(command) << "which cannot be handled."; + break; +--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/common/Messages.h.auth2 2013-11-06 20:54:10.842377053 +0100 ++++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/common/Messages.h 2013-11-06 20:54:34.084491570 +0100 +@@ -51,7 +51,9 @@ namespace SDDM { + RequestSessionID, + SessionID, + RequestCookieLink, +- CookieLink ++ CookieLink, ++ RequestDisplay, ++ Display + }; + + enum Capability { diff --git a/sddm.spec b/sddm.spec index 0872486..b080f92 100644 --- a/sddm.spec +++ b/sddm.spec @@ -3,7 +3,7 @@ Name: sddm Version: 0.2.0 -Release: 0.19.20130914git%(echo %{sddm_commit} | cut -c-8)%{?dist} +Release: 0.20.20130914git%(echo %{sddm_commit} | cut -c-8)%{?dist} # code GPLv2+, fedora theme CC-BY-SA License: GPLv2+ and CC-BY-SA Summary: QML based X11 desktop manager @@ -33,6 +33,7 @@ Patch2: sddm-git.e707e229-session-list.patch Patch3: sddm-0.2.0-0.11.20130914git50ca5b20-xdmcp.patch Patch4: sddm-auth.patch +Patch5: sddm-auth2.patch Provides: service(graphical-login) = sddm @@ -76,6 +77,7 @@ A collection of sddm themes, including: circles, elarun, maldives, maui. %patch2 -p1 -b .session-list %patch3 -p1 -b .xdmcp %patch4 -p1 -b .auth +%patch5 -p2 -b .auth2 # get rid of the architecture flag sed -i "s/-march=native//" CMakeLists.txt @@ -148,6 +150,9 @@ install -Dpm 644 %{SOURCE23} %{buildroot}%{_datadir}/apps/sddm/themes/fedora/the %{_datadir}/apps/sddm/themes/maui/ %changelog +* Tue Nov 05 2013 Martin Briza - 0.2.0-0.20.20130914git50ca5b20 +- Fix xdisplay and tty vars + * Tue Nov 05 2013 Martin Briza - 0.2.0-0.19.20130914git50ca5b20 - Patch cleanup