- sddm-0.11 (#1209689), plus pull in a few post 0.11.0 upstream fixes
- Enable two fedora themes, allowing user selector as default (#1250204)
epel9
Rex Dieter 10 years ago
parent f91cc2093b
commit 47b889e1ec

8
.gitignore vendored

@ -1,8 +1,2 @@
/0.1.0.tar.gz
/e707e22901049495818a9bedf71f0ba829564700.tar.gz
/50ca5b20354b6d338ce8836a613af19cedb1dca2.tar.gz
/7a008602f5f0a4ed8586ce24012983458a687d4e.tar.gz
/db1d7381754a01a69b0f4c579c0267d80183c066.tar.gz
/f49c2c79b76078169f22cb0f85973cebc70333de.tar.gz
/6a28c29b2914a24f56fe9a7cff82550738672dfb.tar.gz
/v0.10.0.tar.gz /v0.10.0.tar.gz
/v0.11.0.tar.gz

@ -0,0 +1,109 @@
From c1d1c0c8050d45a6316217f2e2ada632b8eddb66 Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Wed, 12 Nov 2014 16:36:26 +0100
Subject: [PATCH 01/70] Replace signal handling method of detecting X startup
with FD method
Using SIGUSR1 to detect when X has started doesn't work with multi seat
as we end up starting two X servers in such fast succession that one
signal gets lost.
Xorg also supports an approach where we pass a file descriptor as an
argument and X will write the used dislay ID (i.e :0) into this file
when it is ready. Apparently this is the preferred approach for
detecting X startup.
---
src/daemon/XorgDisplayServer.cpp | 55 ++++++++++++++++++++++++++++++----------
1 file changed, 42 insertions(+), 13 deletions(-)
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
index f10ad82..dcebb81 100644
--- a/src/daemon/XorgDisplayServer.cpp
+++ b/src/daemon/XorgDisplayServer.cpp
@@ -137,6 +137,17 @@ namespace SDDM {
QStringList args;
args << m_display << "-ac" << "-br" << "-noreset" << "-screen" << "800x600";
process->start("/usr/bin/Xephyr", args);
+
+
+ // wait for display server to start
+ if (!process->waitForStarted()) {
+ // log message
+ qCritical() << "Failed to start display server process.";
+
+ // return fail
+ return false;
+ }
+ emit started();
} else {
// set process environment
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
@@ -145,8 +156,12 @@ namespace SDDM {
env.insert("XCURSOR_THEME", mainConfig.Theme.CursorTheme.get());
process->setProcessEnvironment(env);
- // tell the display server to notify us when we can connect
- SignalHandler::ignoreSigusr1();
+ //create pipe for communicating with X server
+ //0 == read from X, 1== write to from X
+ int pipeFds[2];
+ if (pipe(pipeFds) != 0) {
+ qCritical("Could not create pipe to start X server");
+ }
// start display server
QStringList args;
@@ -155,25 +170,39 @@ namespace SDDM {
<< "-nolisten" << "tcp"
<< "-background" << "none"
<< "-noreset"
+ << "-displayfd" << QString::number(pipeFds[1])
<< QString("vt%1").arg(displayPtr()->terminalId());
qDebug() << "Running:"
<< qPrintable(mainConfig.XDisplay.ServerPath.get())
<< qPrintable(args.join(" "));
process->start(mainConfig.XDisplay.ServerPath.get(), args);
- SignalHandler::initializeSigusr1();
- connect(DaemonApp::instance()->signalHandler(), SIGNAL(sigusr1Received()), this, SIGNAL(started()));
- }
- // wait for display server to start
- if (!process->waitForStarted()) {
- // log message
- qCritical() << "Failed to start display server process.";
+ // wait for display server to start
+ if (!process->waitForStarted()) {
+ // log message
+ qCritical() << "Failed to start display server process.";
+
+ // return fail
+ close(pipeFds[0]);
+ return false;
+ }
+
+ QFile readPipe;
+
+ if (!readPipe.open(pipeFds[0], QIODevice::ReadOnly)) {
+ qCritical("Failed to open pipe to start X Server ");
+
+ close(pipeFds[0]);
+ return false;
+ }
+ QByteArray displayNumber = readPipe.readLine();
+
+
+ // close our pipe
+ close(pipeFds[0]);
- // return fail
- return false;
- }
- if (daemonApp->testing())
emit started();
+ }
// set flag
m_started = true;
--
2.4.3

@ -0,0 +1,44 @@
From 207d03e309ef8a4a94754d2d9d76c72b7ca503bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Sat, 21 Feb 2015 19:57:41 +0100
Subject: [PATCH 19/70] handle merge of libsystemd-journal -> libsystemd for
systemd >= 209
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
see [1]:
'The APIs "sd-journal.h", "sd-login.h", "sd-id128.h", "sd-daemon.h" are no
longer found in individual libraries libsystemd-journal.so, , libsystemd-login.so,
libsystemd-id128.so, libsystemd-daemon.so. Instead, we have merged them into
a single library, libsystemd.so, which provides all symbols.
[1] http://cgit.freedesktop.org/systemd/systemd/tree/NEWS
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
CMakeLists.txt | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 61230a4..3a34ba6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -98,7 +98,12 @@ if(SYSTEMD_FOUND)
add_definitions(-DHAVE_SYSTEMD)
set(CMAKE_AUTOMOC_MOC_OPTIONS -DHAVE_SYSTEMD)
- pkg_check_modules(JOURNALD "libsystemd-journal")
+ # libsystemd-journal was merged into libsystemd in 209
+ if(${SYSTEMD_VERSION} VERSION_LESS 209)
+ pkg_check_modules(JOURNALD "libsystemd-journal")
+ else()
+ pkg_check_modules(JOURNALD "libsystemd")
+ endif()
if(ENABLE_JOURNALD)
if(JOURNALD_FOUND)
--
2.4.3

@ -0,0 +1,26 @@
From 2b1a51ad3dce0d9e96ba30593b895541937fb1a5 Mon Sep 17 00:00:00 2001
From: Simon Clemente <simon_clemente@yahoo.com>
Date: Sat, 11 Apr 2015 14:15:37 +0800
Subject: [PATCH 28/70] Correcting small typo in TextConstants.qml
"loginSucceded," in particular.
---
components/common/TextConstants.qml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/common/TextConstants.qml b/components/common/TextConstants.qml
index 81a4b33..25cea20 100644
--- a/components/common/TextConstants.qml
+++ b/components/common/TextConstants.qml
@@ -29,7 +29,7 @@ QtObject {
readonly property string layout: qsTr("Layout")
readonly property string login: qsTr("Login")
readonly property string loginFailed: qsTr("Login failed")
- readonly property string loginSucceded: qsTr("Login succeeded")
+ readonly property string loginSucceeded: qsTr("Login succeeded")
readonly property string password: qsTr("Password")
readonly property string prompt: qsTr("Enter your username and password")
readonly property string promptSelectUser: qsTr("Select your user and enter password")
--
2.4.3

@ -0,0 +1,33 @@
From 815975c707faf23d458f28130edf108de9c5fa64 Mon Sep 17 00:00:00 2001
From: Zach Ploskey <zach@ploskey.com>
Date: Sat, 30 May 2015 17:37:59 -0700
Subject: [PATCH 34/70] fix typo
---
components/2.0/Background.qml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/components/2.0/Background.qml b/components/2.0/Background.qml
index 5eb13ac..952894c 100644
--- a/components/2.0/Background.qml
+++ b/components/2.0/Background.qml
@@ -25,7 +25,7 @@
import QtQuick 2.0
FocusScope {
- id: containter
+ id: container
property alias source: image.source
property alias fillMode: image.fillMode
@@ -43,6 +43,6 @@ FocusScope {
MouseArea {
anchors.fill: parent
- onClicked: containter.focus = true
+ onClicked: container.focus = true
}
}
--
2.4.3

@ -0,0 +1,64 @@
From b6a43bb50bf055a327e50eb292565d08b8e6b6a5 Mon Sep 17 00:00:00 2001
From: Leonardo <leonardo.guilherme@gmail.com>
Date: Wed, 11 Mar 2015 12:12:44 -0300
Subject: [PATCH 45/70] Provid the role 'needsPassword' in UserModel
---
src/greeter/UserModel.cpp | 5 +++++
src/greeter/UserModel.h | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/greeter/UserModel.cpp b/src/greeter/UserModel.cpp
index e28f40a..82d123c 100644
--- a/src/greeter/UserModel.cpp
+++ b/src/greeter/UserModel.cpp
@@ -37,6 +37,7 @@ namespace SDDM {
QString realName { "" };
QString homeDir { "" };
QString icon { "" };
+ bool needsPassword { false };
int uid { 0 };
int gid { 0 };
};
@@ -75,6 +76,7 @@ namespace SDDM {
user->homeDir = QString(current_pw->pw_dir);
user->uid = int(current_pw->pw_uid);
user->gid = int(current_pw->pw_gid);
+ user->needsPassword = strcmp(current_pw->pw_passwd, "") != 0;
// search for face icon
QString userFace = QString("%1/.face.icon").arg(user->homeDir);
@@ -113,6 +115,7 @@ namespace SDDM {
roleNames[RealNameRole] = "realName";
roleNames[HomeDirRole] = "homeDir";
roleNames[IconRole] = "icon";
+ roleNames[NeedsPasswordRole] = "needsPassword";
return roleNames;
}
@@ -145,6 +148,8 @@ namespace SDDM {
return user->homeDir;
else if (role == IconRole)
return user->icon;
+ else if (role == NeedsPasswordRole)
+ return user->needsPassword;
// return empty value
return QVariant();
diff --git a/src/greeter/UserModel.h b/src/greeter/UserModel.h
index 8cc355f..99d2770 100644
--- a/src/greeter/UserModel.h
+++ b/src/greeter/UserModel.h
@@ -37,7 +37,8 @@ namespace SDDM {
NameRole = Qt::UserRole + 1,
RealNameRole,
HomeDirRole,
- IconRole
+ IconRole,
+ NeedsPasswordRole
};
UserModel(QObject *parent = 0);
--
2.4.3

@ -0,0 +1,25 @@
From a823ae659f705e80546444a7e991c92b54e48826 Mon Sep 17 00:00:00 2001
From: Leonardo <leonardo.guilherme@gmail.com>
Date: Wed, 11 Mar 2015 12:21:00 -0300
Subject: [PATCH 49/70] Set showPassword according to needsPassword role in
maui theme
---
data/themes/maui/Main.qml | 1 +
1 file changed, 1 insertion(+)
diff --git a/data/themes/maui/Main.qml b/data/themes/maui/Main.qml
index 89c443c..9b3bc78 100644
--- a/data/themes/maui/Main.qml
+++ b/data/themes/maui/Main.qml
@@ -72,6 +72,7 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
name: (model.realName === "") ? model.name : model.realName
icon: model.icon
+ showPassword: model.needsPassword
focus: (listView.currentIndex === index) ? true : false
state: (listView.currentIndex === index) ? "active" : ""
--
2.4.3

@ -0,0 +1,30 @@
From 07866210800743a5930f6e77a4ad6cb85b8e51b7 Mon Sep 17 00:00:00 2001
From: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Date: Sun, 21 Jun 2015 12:18:17 +0200
Subject: [PATCH 50/70] Add a note about needsPassword role and shadow
The flag will always be true when shadow is used because pw_passwd
will contain 'x' even if the password was erased.
When shadow is used we'll still see the password prompt but we'll
be able to login just pressing enter.
---
src/greeter/UserModel.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/greeter/UserModel.cpp b/src/greeter/UserModel.cpp
index 82d123c..2365828 100644
--- a/src/greeter/UserModel.cpp
+++ b/src/greeter/UserModel.cpp
@@ -76,6 +76,8 @@ namespace SDDM {
user->homeDir = QString(current_pw->pw_dir);
user->uid = int(current_pw->pw_uid);
user->gid = int(current_pw->pw_gid);
+ // if shadow is used pw_passwd will be 'x' nevertheless, so this
+ // will always be true
user->needsPassword = strcmp(current_pw->pw_passwd, "") != 0;
// search for face icon
--
2.4.3

@ -0,0 +1,29 @@
From f7c44a4ece6ec90e33bb61080092430d34394569 Mon Sep 17 00:00:00 2001
From: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Date: Tue, 23 Jun 2015 01:00:35 +0200
Subject: [PATCH 59/70] Add new platformTheme key to themes
Set QT_QPA_PLATFORMTHEME based on what the theme says.
This allows greeter themes to be further customized with special settings.
---
src/greeter/GreeterApp.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp
index cec9d5e..71c7d86 100644
--- a/src/greeter/GreeterApp.cpp
+++ b/src/greeter/GreeterApp.cpp
@@ -107,6 +107,10 @@ namespace SDDM {
if (m_themeConfig->contains("cursorTheme"))
qputenv("XCURSOR_THEME", m_themeConfig->value("cursorTheme").toString().toUtf8());
+ // set platform theme
+ if (m_themeConfig->contains("platformTheme"))
+ qputenv("QT_QPA_PLATFORMTHEME", m_themeConfig->value("platformTheme").toString().toUtf8());
+
// create models
m_sessionModel = new SessionModel();
--
2.4.3

@ -0,0 +1,26 @@
From c7572aa01c9d36124eeacde54f37dcbd4bab6433 Mon Sep 17 00:00:00 2001
From: Jerome Leclanche <jerome@leclan.ch>
Date: Thu, 16 Jul 2015 16:40:59 +0200
Subject: [PATCH 69/70] Clock: Do not hardcode date format
Fixes #384
---
components/2.0/Clock.qml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/2.0/Clock.qml b/components/2.0/Clock.qml
index 2f2d811..f03d0bf 100644
--- a/components/2.0/Clock.qml
+++ b/components/2.0/Clock.qml
@@ -54,7 +54,7 @@ Column {
color: container.color
- text : Qt.formatDate(container.dateTime, "dddd, MMM dd")
+ text : Qt.formatDate(container.dateTime, Qt.DefaultLocaleLongDate)
font.pointSize: 24
}
--
2.4.3

@ -0,0 +1,12 @@
diff -up sddm-0.11.0/src/common/Configuration.h.orig sddm-0.11.0/src/common/Configuration.h
--- sddm-0.11.0/src/common/Configuration.h.orig 2014-11-20 09:47:24.000000000 -0600
+++ sddm-0.11.0/src/common/Configuration.h 2015-08-06 08:51:38.203801508 -0500
@@ -46,7 +46,7 @@ namespace SDDM {
// Name Entries (but it's a regular class again)
Section(Theme,
Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path"));
- Entry(Current, QString, _S("maui"), _S("Current theme name"));
+ Entry(Current, QString, _S("01-breeze-fedora"), _S("Current theme name"));
Entry(FacesDir, QString, _S(DATA_INSTALL_DIR "/faces"), _S("Face icon directory\n"
"The files should be in username.face.icon format"));
Entry(CursorTheme, QString, QString(), _S("Cursor theme"));

@ -24,7 +24,7 @@
[Theme] [Theme]
# Current theme name # Current theme name
#Current=fedora #Current=01-breeze-fedora
# Cursor theme # Cursor theme
#CursorTheme= #CursorTheme=

@ -1,8 +1,8 @@
%global _hardened_build 1 %global _hardened_build 1
Name: sddm Name: sddm
Version: 0.10.0 Version: 0.11.0
Release: 6%{?dist} Release: 1%{?dist}
# code GPLv2+, fedora theme CC-BY-SA # code GPLv2+, fedora theme CC-BY-SA
License: GPLv2+ and CC-BY-SA License: GPLv2+ and CC-BY-SA
Summary: QML based X11 desktop manager Summary: QML based X11 desktop manager
@ -10,8 +10,21 @@ Summary: QML based X11 desktop manager
Url: https://github.com/sddm/sddm Url: https://github.com/sddm/sddm
Source0: https://github.com/sddm/sddm/archive/v%{version}.tar.gz Source0: https://github.com/sddm/sddm/archive/v%{version}.tar.gz
# Default configuration is handled by the binary itself ## upstream patches
Source10: Configuration.h Patch1: 0001-Replace-signal-handling-method-of-detecting-X-startu.patch
Patch19: 0019-handle-merge-of-libsystemd-journal-libsystemd-for-sy.patch
Patch28: 0028-Correcting-small-typo-in-TextConstants.qml.patch
Patch34: 0034-fix-typo.patch
Patch45: 0045-Provid-the-role-needsPassword-in-UserModel.patch
Patch49: 0049-Set-showPassword-according-to-needsPassword-role-in-.patch
Patch50: 0050-Add-a-note-about-needsPassword-role-and-shadow.patch
Patch59: 0059-Add-new-platformTheme-key-to-themes.patch
Patch69: 0069-Clock-Do-not-hardcode-date-format.patch
## downstream patches
# downstream fedora-specific configuration
Patch101: sddm-0.11.0-fedora_config.patch
# Shamelessly stolen from gdm # Shamelessly stolen from gdm
Source11: sddm.pam Source11: sddm.pam
# Shamelessly stolen from gdm # Shamelessly stolen from gdm
@ -29,14 +42,14 @@ Source23: fedora-theme.conf
Provides: service(graphical-login) = sddm Provides: service(graphical-login) = sddm
BuildRequires: cmake BuildRequires: cmake
BuildRequires: systemd
BuildRequires: pam-devel
BuildRequires: libxcb-devel BuildRequires: libxcb-devel
BuildRequires: pam-devel
BuildRequires: pkgconfig(systemd)
BuildRequires: python-docutils
BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtdeclarative-devel BuildRequires: qt5-qtdeclarative-devel
BuildRequires: qt5-qttools-devel BuildRequires: qt5-qttools-devel
BuildRequires: pkgconfig BuildRequires: systemd
BuildRequires: python-docutils
Obsoletes: kde-settings-sddm < 20-5 Obsoletes: kde-settings-sddm < 20-5
@ -71,14 +84,17 @@ A collection of sddm themes, including: circles, elarun, maldives, maui.
%prep %prep
%setup -q -n %{name}-%{version} %autosetup -p1
cp %{SOURCE10} src/common/
%build %build
mkdir -p %{_target_platform} mkdir %{_target_platform}
pushd %{_target_platform} pushd %{_target_platform}
%{cmake} -DUSE_QT5=true -DBUILD_MAN_PAGES=true -DENABLE_JOURNALD=true .. %{cmake} .. \
-DBUILD_MAN_PAGES:BOOL=ON \
-DENABLE_JOURNALD:BOOL=ON \
-DSESSION_COMMAND:PATH=/etc/X11/xinit/Xsession \
-DUSE_QT5:BOOL=ON
popd popd
make %{?_smp_mflags} -C %{_target_platform} make %{?_smp_mflags} -C %{_target_platform}
@ -95,9 +111,9 @@ mkdir -p %{buildroot}%{_localstatedir}/run/sddm
mkdir -p %{buildroot}%{_localstatedir}/lib/sddm mkdir -p %{buildroot}%{_localstatedir}/lib/sddm
# install fedora theme # install fedora theme
install -Dpm 644 %{SOURCE21} %{buildroot}%{_datadir}/sddm/themes/fedora/Main.qml install -Dpm 644 %{SOURCE21} %{buildroot}%{_datadir}/sddm/themes/02-fedora/Main.qml
install -Dpm 644 %{SOURCE22} %{buildroot}%{_datadir}/sddm/themes/fedora/metadata.desktop install -Dpm 644 %{SOURCE22} %{buildroot}%{_datadir}/sddm/themes/02-fedora/metadata.desktop
install -Dpm 644 %{SOURCE23} %{buildroot}%{_datadir}/sddm/themes/fedora/theme.conf install -Dpm 644 %{SOURCE23} %{buildroot}%{_datadir}/sddm/themes/02-fedora/theme.conf
%pre %pre
@ -109,6 +125,12 @@ exit 0
%post %post
%systemd_post sddm.service %systemd_post sddm.service
# handle theme rename: fedora => 02-fedora
(grep '^Current=fedora$' %{_sysconfdir}/sddm.conf > /dev/null && \
sed -i.rpmsave -e 's|^Current=fedora$|Current=02-fedora|' \
%{_sysconfdir}/sddm.conf
) ||:
%preun %preun
%systemd_preun sddm.service %systemd_preun sddm.service
@ -137,11 +159,14 @@ exit 0
%{_datadir}/sddm/flags/ %{_datadir}/sddm/flags/
%{_datadir}/sddm/scripts/ %{_datadir}/sddm/scripts/
%dir %{_datadir}/sddm/themes/ %dir %{_datadir}/sddm/themes/
# default fedora theme # default non-userlist fedora theme
%{_datadir}/sddm/themes/fedora/ %{_datadir}/sddm/themes/02-fedora/
# %%lang'ify ? -- rex # %%lang'ify ? -- rex
%{_datadir}/sddm/translations/ %{_datadir}/sddm/translations/
%{_mandir}/man*/sddm* %{_mandir}/man1/sddm.1*
%{_mandir}/man1/sddm-greeter.1*
%{_mandir}/man5/sddm.conf.5*
%{_mandir}/man5/sddm-state.conf.5*
%files themes %files themes
%{_datadir}/sddm/themes/circles/ %{_datadir}/sddm/themes/circles/
@ -149,7 +174,12 @@ exit 0
%{_datadir}/sddm/themes/maldives/ %{_datadir}/sddm/themes/maldives/
%{_datadir}/sddm/themes/maui/ %{_datadir}/sddm/themes/maui/
%changelog %changelog
* Thu Aug 06 2015 Rex Dieter <rdieter@fedoraproject.org> - 0.11.0-1
- sddm-0.11 (#1209689), plus pull in a few post 0.11.0 upstream fixes
- Enable two fedora themes, allowing user selector as default (#1250204)
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.10.0-6 * Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.10.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

@ -1 +1 @@
281f920b61b706fbeb07b5397a9bcda2 v0.10.0.tar.gz e110a7683867400dc9484d4744fd41dd v0.11.0.tar.gz

Loading…
Cancel
Save