commit sddm for openSUSE:Factory
Hello community, here is the log from the commit of package sddm for openSUSE:Factory checked in at 2016-11-28 15:03:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sddm (Old) and /work/SRC/openSUSE:Factory/.sddm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "sddm" Changes: -------- --- /work/SRC/openSUSE:Factory/sddm/sddm.changes 2016-11-25 12:28:58.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.sddm.new/sddm.changes 2016-11-28 15:03:36.000000000 +0100 @@ -1,0 +2,21 @@ +Fri Nov 25 11:57:34 UTC 2016 - fabian@ritter-vogt.de + +- Fix %post and %postun of branding subpackages + +------------------------------------------------------------------- +Mon Nov 21 20:55:27 UTC 2016 - fabian@ritter-vogt.de + +- Add various bugfixes from develop branch: + * 0001-Fix-display-of-user-avatars.-684.patch + * 0002-Add-a-config-option-to-enable-high-DPI-scaling-701.patch + * 0003-elarun-Update-date-and-time.patch + * 0004-Support-Non-Latin-characters-in-theme-settings-708.patch + * 0005-Cleanup-dangling-pointer-in-SocketServer-725.patch + +------------------------------------------------------------------- +Wed Oct 5 07:23:51 UTC 2016 - fabian@ritter-vogt.de + +- Sync with KDE:Frameworks5:LTS, sort sddm.changes +- Remove 0001-Fall-back-to-regular-login-when-autologin-fails.patch + +------------------------------------------------------------------- @@ -22,0 +44,51 @@ + +------------------------------------------------------------------- +Mon Aug 29 07:03:56 UTC 2016 - fabian@ritter-vogt.de + +- Update to 0.14.0: + - http://hawaiios.org/news/2016/08/28/sddm-0.14.0 + + New sddm.conf option EnableAvatars (useful for slow filesystems) + + New sddm.conf option UserAuthFile on the XDisplay section + to change the default Xauthority file name and path. + + New sddm.conf option SessionLogFile on XDisplay and WaylandDisplay + sections to change the default user session log location. + + ComboBox now exposes the arrow background color as + "arrowColor" property. + + New "style" theme configuration for QtQuick Controls 2.0. + + Require Qt 5.6 or better. + + Enable HiDPI support. + + Refresh sessions list. + + Always fallback to an embedded theme if no suitable theme is found. + - Actually change Qt platform theme. + - Switch to Wayland session vt only when authentication + succeeds. + - Close PAM session. + - Delete PAM credentials after closing the session. + * More theme-neutral default user and root avatars + * REMOVED the "circles" theme. Remember to change it if you had it set! + * REMOVED the "maui" theme as a standalone theme as it is now + embedded in the greeter. Remember to change the theme to empty + if you had it set to "maui". + * Update Estonian translation. + * Add Catalan translation from Robert Antoni Buj Gelonch. + * Add Dutch translation from Eric Hameleers. + * Add Slovak translation from Martin Minka. + * Add Swedish translation from Kristoffer Grundström. + * Add Ukrainian translation from Cherevan Andriy. + * Add Indian flag from Sanjeev Premi. +- Refresh patches: + - sddm-relaxed-auth.diff + - sddm-service-handle-plymouth.patch + - sysconfig-support.patch +- Remove upstream patches: + - 0001-Add-a-config-option-to-enable-avatars.patch + - 0002-Use-.face.icon-instead-of-default.face.icon-and-rena.patch + - root.face.icon.png + - default.face.icon.png +- Remove upstreamed patches: + - add-count-property-to-UserModel.patch + - add-threshold-to-disable-avatars.patch + - specify-default-config-entries.patch +- Revert upstream config section name change (gh#sddm/sddm#680): + - 0001-Revert-Rename-XDisplay-and-WaylandDisplay-config-sec.patch +- Use "Current=" instead of "Current=maui" Old: ---- 0001-Add-a-config-option-to-enable-avatars.patch 0001-Fall-back-to-regular-login-when-autologin-fails.patch 0002-Use-.face.icon-instead-of-default.face.icon-and-rena.patch add-count-property-to-UserModel.patch add-threshold-to-disable-avatars.patch default.face.icon.png root.face.icon.png sddm-0.13.0.tar.xz specify-default-config-entries.patch New: ---- 0001-Fix-display-of-user-avatars.-684.patch 0001-Revert-Rename-XDisplay-and-WaylandDisplay-config-sec.patch 0002-Add-a-config-option-to-enable-high-DPI-scaling-701.patch 0003-elarun-Update-date-and-time.patch 0004-Support-Non-Latin-characters-in-theme-settings-708.patch 0005-Cleanup-dangling-pointer-in-SocketServer-725.patch sddm-0.14.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sddm.spec ++++++ --- /var/tmp/diff_new_pack.EuI2qa/_old 2016-11-28 15:03:37.000000000 +0100 +++ /var/tmp/diff_new_pack.EuI2qa/_new 2016-11-28 15:03:37.000000000 +0100 @@ -20,7 +20,7 @@ %{!?_unitdir: %global _unitdir /usr/lib/systemd/system} Name: sddm -Version: 0.13.0 +Version: 0.14.0 Release: 0 Summary: Lightweight QML-based display manager License: GPL-2.0+ @@ -29,39 +29,33 @@ Source: https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz Source1: %{name}.conf Source2: X11-displaymanagers-%{name} -# default.face.icon.png and root.face.icon.png were part of Patch7 (0002-Use-.face.icon-instead-of-default.face.icon-and-rena.patch), but used as sources since binary patches are not supported -Source3: default.face.icon.png -Source4: root.face.icon.png +# PATCH-FIX-UPSTREAM 0001-Revert-Rename-XDisplay-and-WaylandDisplay-config-sec.patch -- Revert to 0.13.0 config syntax +Patch0: 0001-Revert-Rename-XDisplay-and-WaylandDisplay-config-sec.patch # PATCH-FIX-OPENSUSE proper_pam.diff -- Use openSUSE pam config -Patch0: proper_pam.diff +Patch1: proper_pam.diff # PATCH-FIX-OPENSUSE create_pid_file.patch -- openSUSE's generic display-manager service doesn't know what to do without a pid file. drop the patch as soon as that sick dinosaur is killed -Patch1: create_pid_file.patch +Patch2: create_pid_file.patch # PATCH-FIX-OPENSUSE sddm-relaxed-auth.diff -- Insert XAUTHLOCALHOSTNAME into users enviroment, so the session handles hostname changes with a single X instance/run # related patches: libxcb/bug-262309_xcb-xauthlocalhostname.diff, xauth/xauth-tolerant-hostname-changes.diff, kdebase4-workspace/kdm-relaxed-auth.diff -Patch2: sddm-relaxed-auth.diff +Patch3: sddm-relaxed-auth.diff # PATCH-FIX-OPENSUSE sysconfig-support.patch -- Support DISPLAYMANAGER_AUTOLOGIN entry from /etc/sysconfig/displaymanager, the value overwrites # any entry in sddm.conf/[Autologin]/User. Patch also defaults to plasma5.desktop as default autologin session. This is controlled only by sddm.conf file. -Patch3: sysconfig-support.patch +Patch4: sysconfig-support.patch # PATCH-FIX-OPENSUSE sddm-service-handle-plymouth.patch -- sddm has some rudimentary support for plymouth handling, which only works with plymouth-quit.service # (the servce is not enabled on openSUSE). For users of sddm.service, we need to issue plymouth quit command by hand in this case -Patch4: sddm-service-handle-plymouth.patch +Patch5: sddm-service-handle-plymouth.patch # PATCH-FIX-OPENSUSE boo949903.patch -- Let sddm also default to plasma5 for last used session (boo#949903) -Patch5: boo949903.patch -# PATCH-FIX-UPSTREAM 0001-Add-a-config-option-to-enable-avatars.patch -- Add EnableAvatars config option -Patch6: 0001-Add-a-config-option-to-enable-avatars.patch -# PATCH-FIX-UPSTREAM 0002-Use-.face.icon-instead-of-default.face.icon-and-rena.patch -- Use new face icons -Patch7: 0002-Use-.face.icon-instead-of-default.face.icon-and-rena.patch -# PATCH-FIX-UPSTREAM add-count-property-to-UserModel.patch -- Adds a new property so themes can use it -Patch8: add-count-property-to-UserModel.patch -# PATCH-FIX-UPSTREAM specify-default-config-entries.patch -- Specify which config entries are a default and which come from the config file -Patch9: specify-default-config-entries.patch -# PATCH-FIX-UPSTREAM add-threshold-to-disable-avatars.patch -- Add a config option/property to define a thershold above which avatars are disabled automatically -Patch10: add-threshold-to-disable-avatars.patch +Patch6: boo949903.patch # PATCH-FIX-UPSTREAM 0001-Make-the-default-cursor-themed.patch -- Make the default cursor themed -Patch11: 0001-Make-the-default-cursor-themed.patch -# PATCH-FIX-UPSTREAM 0001-Fall-back-to-regular-login-when-autologin-fails.patch -- Fall back to regular login when autologin fails -Patch12: 0001-Fall-back-to-regular-login-when-autologin-fails.patch +Patch7: 0001-Make-the-default-cursor-themed.patch +# Bugfixes from upstream develop branch +Patch10: 0001-Fix-display-of-user-avatars.-684.patch +Patch11: 0002-Add-a-config-option-to-enable-high-DPI-scaling-701.patch +Patch12: 0003-elarun-Update-date-and-time.patch +Patch13: 0004-Support-Non-Latin-characters-in-theme-settings-708.patch +Patch14: 0005-Cleanup-dangling-pointer-in-SocketServer-725.patch BuildRequires: cmake +BuildRequires: extra-cmake-modules >= 1.4.0 BuildRequires: fdupes BuildRequires: kf5-filesystem BuildRequires: libqt5-linguist-devel @@ -70,7 +64,7 @@ BuildRequires: python-docutils # Autodetect UID_MIN and UID_MAX from /etc/login.defs BuildRequires: shadow -BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Core) >= 5.6.0 BuildRequires: pkgconfig(Qt5DBus) BuildRequires: pkgconfig(Qt5Network) BuildRequires: pkgconfig(Qt5Quick) @@ -127,13 +121,11 @@ %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 -%patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 -cp %{SOURCE3} data/faces/default.face.icon.png -cp %{SOURCE4} data/faces/root.face.icon.png +%patch13 -p1 +%patch14 -p1 %build %cmake \ @@ -167,27 +159,32 @@ /usr/sbin/useradd -r -g sddm -s /bin/false -c "SDDM daemon" \ -d /var/lib/sddm sddm 2> /dev/null || : +%post +if [ $1 -eq 2 -a -f /etc/sddm.conf ]; then + sed -i -e 's/^Current=maui$/Current=/g' /etc/sddm.conf +fi + %post branding-openSUSE if [ $1 -ge 1 -a -f /etc/sddm.conf ]; then # Upgrade from previous theme name sed -i -e 's/^Current=breeze$/Current=breeze-openSUSE/g' /etc/sddm.conf sed -i -e 's/^Current=maui$/Current=breeze-openSUSE/g' /etc/sddm.conf fi +sed -i -e 's/^Current=$/Current=breeze-openSUSE/g' /etc/sddm.conf %postun branding-openSUSE if [ $1 -eq 0 -a -f /etc/sddm.conf ]; then - sed -i -e 's/^Current=breeze-openSUSE$/Current=maui/g' /etc/sddm.conf + sed -i -e 's/^Current=breeze-openSUSE$/Current=/g' /etc/sddm.conf fi %files %defattr(-,root,root) -%doc COPYING* README* +%doc LICENSE* README* %config(noreplace) %{_sysconfdir}/%{name}.conf %config %{_sysconfdir}/pam.d/sddm %config %{_sysconfdir}/pam.d/sddm-autologin %config %{_sysconfdir}/pam.d/sddm-greeter %config(noreplace) %{_sysconfdir}/dbus-1/system.d/sddm_org.freedesktop.DisplayManager.conf -%{_sysconfdir}/pam.d/sddm* %{_libexecdir}/sddm/ %dir %{_libexecdir}/X11/displaymanagers/ %{_libexecdir}/X11/displaymanagers/%{name} @@ -207,10 +204,10 @@ %files branding-openSUSE %defattr(-,root,root) -%doc COPYING* README* +%doc LICENSE* README* %files branding-upstream %defattr(-,root,root) -%doc COPYING* README* +%doc LICENSE* README* %changelog ++++++ 0001-Fix-display-of-user-avatars.-684.patch ++++++
From 5cb4935ecc12d2f47ede1ec3dfeba066c56ae96e Mon Sep 17 00:00:00 2001 From: Bastian Beischer
Date: Fri, 2 Sep 2016 13:05:18 +0200 Subject: [PATCH 1/5] Fix display of user avatars. (#684)
QFile::exists("...") does not understand file:// URLs, at least in Qt 5.7.0 and Qt 4.8.7. --- src/greeter/UserModel.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/greeter/UserModel.cpp b/src/greeter/UserModel.cpp index 41a9f10..94c492d 100644 --- a/src/greeter/UserModel.cpp +++ b/src/greeter/UserModel.cpp @@ -107,13 +107,13 @@ namespace SDDM { d->lastIndex = i; if (avatarsEnabled) { - const QString userFace = QStringLiteral("file://%1/.face.icon").arg(user->homeDir); - const QString systemFace = QStringLiteral("file://%1/%2.face.icon").arg(facesDir).arg(user->name); + const QString userFace = QStringLiteral("%1/.face.icon").arg(user->homeDir); + const QString systemFace = QStringLiteral("%1/%2.face.icon").arg(facesDir).arg(user->name); if (QFile::exists(userFace)) - user->icon = userFace; + user->icon = QStringLiteral("file://%1").arg(userFace); else if (QFile::exists(systemFace)) - user->icon = systemFace; + user->icon = QStringLiteral("file://%1").arg(systemFace); } } } -- 2.10.1 ++++++ 0001-Make-the-default-cursor-themed.patch ++++++ --- /var/tmp/diff_new_pack.EuI2qa/_old 2016-11-28 15:03:37.000000000 +0100 +++ /var/tmp/diff_new_pack.EuI2qa/_new 2016-11-28 15:03:37.000000000 +0100 @@ -14,10 +14,10 @@ src/greeter/GreeterApp.cpp | 5 +++++ 1 file changed, 5 insertions(+) -diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp -index 06d13c5..dfe321f 100644 ---- a/src/greeter/GreeterApp.cpp -+++ b/src/greeter/GreeterApp.cpp +Index: sddm-0.14.0/src/greeter/GreeterApp.cpp +=================================================================== +--- sddm-0.14.0.orig/src/greeter/GreeterApp.cpp ++++ sddm-0.14.0/src/greeter/GreeterApp.cpp @@ -32,6 +32,7 @@ #include "MessageHandler.h" @@ -26,9 +26,9 @@ #include <QQuickView> #include <QQmlContext> #include <QQmlEngine> -@@ -198,6 +199,10 @@ namespace SDDM { - // set main script as source - view->setSource(QUrl::fromLocalFile(mainScript)); +@@ -211,6 +212,10 @@ namespace SDDM { + qInfo("Loading %s...", qPrintable(mainScriptUrl.toString())); + view->setSource(mainScriptUrl); + // set default cursor + QCursor cursor(Qt::ArrowCursor); @@ -37,6 +37,3 @@ // show qDebug() << "Adding view for" << screen->name() << screen->geometry(); view->show(); --- -2.10.0 - ++++++ 0001-Revert-Rename-XDisplay-and-WaylandDisplay-config-sec.patch ++++++
From 3433d340ed936160c2178f3c021308d44008cf48 Mon Sep 17 00:00:00 2001 From: Pier Luigi Fiorini
Date: Mon, 29 Aug 2016 12:11:03 +0200 Subject: [PATCH] Revert "Rename XDisplay and WaylandDisplay config sections"
This reverts commit 98bcb147acb793bf642e8a7bc9f69facb80e469a. The section name changes are not backwards compatible causing issues to downstream as reported in #679 and #680. The fastest way to resolve the issue is to revert the patch, what I want to see in the future is an upgrade path when the configuration format changes. --- data/man/sddm.conf.rst.in | 4 ++-- src/common/Configuration.h | 4 ++-- src/common/Session.cpp | 4 ++-- src/daemon/Display.cpp | 4 ++-- src/daemon/Seat.cpp | 2 +- src/daemon/XorgDisplayServer.cpp | 14 +++++++------- src/greeter/SessionModel.cpp | 12 ++++++------ src/helper/Backend.cpp | 2 +- src/helper/UserSession.cpp | 10 +++++----- 9 files changed, 28 insertions(+), 28 deletions(-) diff --git a/data/man/sddm.conf.rst.in b/data/man/sddm.conf.rst.in index 3238af5..b10de94 100644 --- a/data/man/sddm.conf.rst.in +++ b/data/man/sddm.conf.rst.in @@ -75,7 +75,7 @@ OPTIONS them altogether. Default value is true. -[X11] section: +[XDisplay] section: `ServerPath=` Path of the X server. @@ -125,7 +125,7 @@ OPTIONS increase as new displays added. Default value is @MINIMUM_VT@. -[Wayland] section: +[WaylandDisplay] section: `SessionDir=` Path of the directory containing session files. diff --git a/src/common/Configuration.h b/src/common/Configuration.h index f790343..666e3e6 100644 --- a/src/common/Configuration.h +++ b/src/common/Configuration.h @@ -57,7 +57,7 @@ namespace SDDM { ); // TODO: Not absolutely sure if everything belongs here. Xsessions, VT and probably some more seem universal - Section(X11, + Section(XDisplay, Entry(ServerPath, QString, _S("/usr/bin/X"), _S("Path to X server binary")); Entry(ServerArguments, QString, _S("-nolisten tcp"), _S("Arguments passed to the X server invocation")); Entry(XephyrPath, QString, _S("/usr/bin/Xephyr"), _S("Path to Xephyr binary")); @@ -71,7 +71,7 @@ namespace SDDM { Entry(MinimumVT, int, MINIMUM_VT, _S("The lowest virtual terminal number that will be used.")); ); - Section(Wayland, + Section(WaylandDisplay, Entry(SessionDir, QString, _S("/usr/share/wayland-sessions"), _S("Directory containing available Wayland sessions")); Entry(SessionCommand, QString, _S(WAYLAND_SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file")); diff --git a/src/common/Session.cpp b/src/common/Session.cpp index 844572c..3605176 100644 --- a/src/common/Session.cpp +++ b/src/common/Session.cpp @@ -118,11 +118,11 @@ namespace SDDM { switch (type) { case X11Session: - m_dir = QDir(mainConfig.X11.SessionDir.get()); + m_dir = QDir(mainConfig.XDisplay.SessionDir.get()); m_xdgSessionType = QStringLiteral("x11"); break; case WaylandSession: - m_dir = QDir(mainConfig.Wayland.SessionDir.get()); + m_dir = QDir(mainConfig.WaylandDisplay.SessionDir.get()); m_xdgSessionType = QStringLiteral("wayland"); break; default: diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp index 2c9b0d3..7dd4c4d 100644 --- a/src/daemon/Display.cpp +++ b/src/daemon/Display.cpp @@ -110,9 +110,9 @@ namespace SDDM { // determine session type const QString &autologinSession = mainConfig.Autologin.Session.get(); - if (findSessionEntry(mainConfig.X11.SessionDir.get(), autologinSession)) { + if (findSessionEntry(mainConfig.XDisplay.SessionDir.get(), autologinSession)) { sessionType = Session::X11Session; - } else if (findSessionEntry(mainConfig.Wayland.SessionDir.get(), autologinSession)) { + } else if (findSessionEntry(mainConfig.WaylandDisplay.SessionDir.get(), autologinSession)) { sessionType = Session::WaylandSession; } else { qCritical() << "Unable to find autologin session entry" << autologinSession; diff --git a/src/daemon/Seat.cpp b/src/daemon/Seat.cpp index 3ef1b2f..915d619 100644 --- a/src/daemon/Seat.cpp +++ b/src/daemon/Seat.cpp @@ -57,7 +57,7 @@ namespace SDDM { if (terminalId == -1) { // find unused terminal - terminalId = findUnused(mainConfig.X11.MinimumVT.get(), [&](const int number) { + terminalId = findUnused(mainConfig.XDisplay.MinimumVT.get(), [&](const int number) { return m_terminalIds.contains(number); }); } diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp index d06d89a..a7e8436 100644 --- a/src/daemon/XorgDisplayServer.cpp +++ b/src/daemon/XorgDisplayServer.cpp @@ -95,7 +95,7 @@ namespace SDDM { file_handler.open(QIODevice::WriteOnly); file_handler.close(); - QString cmd = QStringLiteral("%1 -f %2 -q").arg(mainConfig.X11.XauthPath.get()).arg(file); + QString cmd = QStringLiteral("%1 -f %2 -q").arg(mainConfig.XDisplay.XauthPath.get()).arg(file); // execute xauth FILE *fp = popen(qPrintable(cmd), "w"); @@ -128,7 +128,7 @@ namespace SDDM { if (daemonApp->testing()) { QStringList args; args << m_display << QStringLiteral("-ac") << QStringLiteral("-br") << QStringLiteral("-noreset") << QStringLiteral("-screen") << QStringLiteral("800x600"); - process->start(mainConfig.X11.XephyrPath.get(), args); + process->start(mainConfig.XDisplay.XephyrPath.get(), args); // wait for display server to start @@ -154,16 +154,16 @@ namespace SDDM { } // start display server - QStringList args = mainConfig.X11.ServerArguments.get().split(QLatin1Char(' '), QString::SkipEmptyParts); + QStringList args = mainConfig.XDisplay.ServerArguments.get().split(QLatin1Char(' '), QString::SkipEmptyParts); args << QStringLiteral("-auth") << m_authPath << QStringLiteral("-background") << QStringLiteral("none") << QStringLiteral("-noreset") << QStringLiteral("-displayfd") << QString::number(pipeFds[1]) << QStringLiteral("vt%1").arg(displayPtr()->terminalId()); qDebug() << "Running:" - << qPrintable(mainConfig.X11.ServerPath.get()) + << qPrintable(mainConfig.XDisplay.ServerPath.get()) << qPrintable(args.join(QLatin1Char(' '))); - process->start(mainConfig.X11.ServerPath.get(), args); + process->start(mainConfig.XDisplay.ServerPath.get(), args); // wait for display server to start if (!process->waitForStarted()) { @@ -236,7 +236,7 @@ namespace SDDM { // log message qDebug() << "Display server stopped."; - QString displayStopCommand = mainConfig.X11.DisplayStopCommand.get(); + QString displayStopCommand = mainConfig.XDisplay.DisplayStopCommand.get(); // create display setup script process QProcess *displayStopScript = new QProcess(); @@ -273,7 +273,7 @@ namespace SDDM { } void XorgDisplayServer::setupDisplay() { - QString displayCommand = mainConfig.X11.DisplayCommand.get(); + QString displayCommand = mainConfig.XDisplay.DisplayCommand.get(); // create display setup script process QProcess *displayScript = new QProcess(); diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp index d3ace84..7d690fb 100644 --- a/src/greeter/SessionModel.cpp +++ b/src/greeter/SessionModel.cpp @@ -41,8 +41,8 @@ namespace SDDM { SessionModel::SessionModel(QObject *parent) : QAbstractListModel(parent), d(new SessionModelPrivate()) { // initial population beginResetModel(); - populate(Session::X11Session, mainConfig.X11.SessionDir.get()); - populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); + populate(Session::X11Session, mainConfig.XDisplay.SessionDir.get()); + populate(Session::WaylandSession, mainConfig.WaylandDisplay.SessionDir.get()); endResetModel(); // refresh everytime a file is changed, added or removed @@ -50,12 +50,12 @@ namespace SDDM { connect(watcher, &QFileSystemWatcher::directoryChanged, [this](const QString &path) { beginResetModel(); d->sessions.clear(); - populate(Session::X11Session, mainConfig.X11.SessionDir.get()); - populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); + populate(Session::X11Session, mainConfig.XDisplay.SessionDir.get()); + populate(Session::WaylandSession, mainConfig.WaylandDisplay.SessionDir.get()); endResetModel(); }); - watcher->addPath(mainConfig.X11.SessionDir.get()); - watcher->addPath(mainConfig.Wayland.SessionDir.get()); + watcher->addPath(mainConfig.XDisplay.SessionDir.get()); + watcher->addPath(mainConfig.WaylandDisplay.SessionDir.get()); } SessionModel::~SessionModel() { diff --git a/src/helper/Backend.cpp b/src/helper/Backend.cpp index d6bb4d0..7195ddc 100644 --- a/src/helper/Backend.cpp +++ b/src/helper/Backend.cpp @@ -67,7 +67,7 @@ namespace SDDM { // determine Xauthority path QString value = QStringLiteral("%1/%2") .arg(QString::fromLocal8Bit(pw->pw_dir)) - .arg(mainConfig.X11.UserAuthFile.get()); + .arg(mainConfig.XDisplay.UserAuthFile.get()); env.insert(QStringLiteral("XAUTHORITY"), value); } // TODO: I'm fairly sure this shouldn't be done for PAM sessions, investigate! diff --git a/src/helper/UserSession.cpp b/src/helper/UserSession.cpp index fc10366..d7b93a8 100644 --- a/src/helper/UserSession.cpp +++ b/src/helper/UserSession.cpp @@ -46,11 +46,11 @@ namespace SDDM { if (env.value(QStringLiteral("XDG_SESSION_CLASS")) == QStringLiteral("greeter")) { QProcess::start(m_path); } else if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QStringLiteral("x11")) { - const QString cmd = QStringLiteral("%1 %2").arg(mainConfig.X11.SessionCommand.get()).arg(m_path); + const QString cmd = QStringLiteral("%1 %2").arg(mainConfig.XDisplay.SessionCommand.get()).arg(m_path); qInfo() << "Starting:" << cmd; QProcess::start(cmd); } else if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QStringLiteral("wayland")) { - const QString cmd = QStringLiteral("%1 %2").arg(mainConfig.Wayland.SessionCommand.get()).arg(m_path); + const QString cmd = QStringLiteral("%1 %2").arg(mainConfig.WaylandDisplay.SessionCommand.get()).arg(m_path); qInfo() << "Starting:" << cmd; QProcess::start(cmd); } else { @@ -135,8 +135,8 @@ namespace SDDM { QString sessionLog = QStringLiteral("%1/%2") .arg(QString::fromLocal8Bit(pw->pw_dir)) .arg(sessionType == QStringLiteral("x11") - ? mainConfig.X11.SessionLogFile.get() - : mainConfig.Wayland.SessionLogFile.get()); + ? mainConfig.XDisplay.SessionLogFile.get() + : mainConfig.WaylandDisplay.SessionLogFile.get()); // create the path QFileInfo finfo(sessionLog); @@ -180,7 +180,7 @@ namespace SDDM { file_handler.open(QIODevice::WriteOnly); file_handler.close(); - QString cmd = QStringLiteral("%1 -f %2 -q").arg(mainConfig.X11.XauthPath.get()).arg(file); + QString cmd = QStringLiteral("%1 -f %2 -q").arg(mainConfig.XDisplay.XauthPath.get()).arg(file); // execute xauth FILE *fp = popen(qPrintable(cmd), "w"); -- 2.9.3 ++++++ 0002-Add-a-config-option-to-enable-high-DPI-scaling-701.patch ++++++
From b7e69e34e3cd60f480042b43b89c6c22ac812625 Mon Sep 17 00:00:00 2001 From: Stany MARCEL
Date: Thu, 15 Sep 2016 17:47:25 +0200 Subject: [PATCH 2/5] Add a config option to enable high-DPI scaling (#701)
The new EnableHiDPI boolean option permits to enable or not the
activation of Qt::AA_EnableHighDpiScaling attribute.
The default is enabled.
[ChangeLog][Greeter] Enable Qt's automatic high dpi scaling based on
configuration
Signed-off-by: Stany MARCEL
From 28822b9242beecaebb4d1978dc641daccc72bb60 Mon Sep 17 00:00:00 2001 From: Hendrik Lehmbruch
Date: Tue, 13 Sep 2016 16:11:35 +0200 Subject: [PATCH 3/5] elarun: Update date and time
[ChangeLog][Themes] Update date and time in the "elarun" theme Closes: #665 --- data/themes/elarun/Main.qml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/data/themes/elarun/Main.qml b/data/themes/elarun/Main.qml index 174a3b8..37a97a0 100644 --- a/data/themes/elarun/Main.qml +++ b/data/themes/elarun/Main.qml @@ -200,13 +200,21 @@ Rectangle { } } + Timer { + id: time + interval: 100 + running: true + repeat: true + + onTriggered: { + dateTime.text = Qt.formatDateTime(new Date(), "dddd, dd MMMM yyyy HH:mm AP") + } + } + Text { - id: time_label + id: dateTime anchors.right: parent.right anchors.bottom: parent.bottom - - text: Qt.formatDateTime(new Date(), "dddd, dd MMMM yyyy HH:mm AP") - horizontalAlignment: Text.AlignRight color: "#0b678c" -- 2.10.1 ++++++ 0004-Support-Non-Latin-characters-in-theme-settings-708.patch ++++++
From a721a20f4a66d7418ee9c8bbd3177ce4141d02af Mon Sep 17 00:00:00 2001 From: Guo Yunhe
Date: Wed, 28 Sep 2016 08:41:53 +0300 Subject: [PATCH 4/5] Support Non-Latin characters in theme settings (#708)
By default, QSettings doesn't support non-lating characters in config file. However, KCM will write background path into theme config file without escape. That means, we need to read UTF-8 strings. [ChangeLog][Themes] Support UTF-8 in theme configuration --- src/common/ThemeConfig.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/common/ThemeConfig.cpp b/src/common/ThemeConfig.cpp index e98ab10..1cd4750 100644 --- a/src/common/ThemeConfig.cpp +++ b/src/common/ThemeConfig.cpp @@ -35,6 +35,12 @@ namespace SDDM { QSettings settings(path, QSettings::IniFormat); QSettings userSettings(path + QStringLiteral(".user"), QSettings::IniFormat); + // Support non-latin strings in background picture path + // Warning: The codec must be set immediately after creating the QSettings object, + // before accessing any data. + settings.setIniCodec("UTF-8"); + userSettings.setIniCodec("UTF-8"); + // read default keys for (const QString &key: settings.allKeys()) { insert(key, settings.value(key)); -- 2.10.1 ++++++ 0005-Cleanup-dangling-pointer-in-SocketServer-725.patch ++++++
From 8ed7b338b20e3d46272f40a55bc41bc5a8154d3e Mon Sep 17 00:00:00 2001 From: davidedmundson
Date: Tue, 18 Oct 2016 18:39:09 +0100 Subject: [PATCH 5/5] Cleanup dangling pointer in SocketServer (#725)
This fixes SDDM crashing if xorg fails to load
[ChangeLog][Auth] Fix crash if Xorg fails to load
---
src/auth/Auth.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/auth/Auth.cpp b/src/auth/Auth.cpp
index b480e72..28b807d 100644
--- a/src/auth/Auth.cpp
+++ b/src/auth/Auth.cpp
@@ -52,6 +52,7 @@ namespace SDDM {
Q_OBJECT
public:
Private(Auth *parent);
+ ~Private();
void setSocket(QLocalSocket *socket);
public slots:
void dataPending();
@@ -136,6 +137,12 @@ namespace SDDM {
connect(request, SIGNAL(promptsChanged()), parent, SIGNAL(requestChanged()));
}
+ Auth::Private::~Private()
+ {
+ SocketServer::instance()->helpers.remove(id);
+ }
+
+
void Auth::Private::setSocket(QLocalSocket *socket) {
this->socket = socket;
connect(socket, SIGNAL(readyRead()), this, SLOT(dataPending()));
--
2.10.1
++++++ boo949903.patch ++++++
--- /var/tmp/diff_new_pack.EuI2qa/_old 2016-11-28 15:03:37.000000000 +0100
+++ /var/tmp/diff_new_pack.EuI2qa/_new 2016-11-28 15:03:37.000000000 +0100
@@ -1,11 +1,16 @@
---- sddm-0.12.0.orig/src/common/Configuration.h 2015-10-11 14:03:22.510105030 +0200
-+++ sddm-0.12.0/src/common/Configuration.h 2015-10-11 14:06:02.148109280 +0200
-@@ -90,7 +90,7 @@ namespace SDDM {
+Index: sddm-0.14.0/src/common/Configuration.h
+===================================================================
+--- sddm-0.14.0.orig/src/common/Configuration.h
++++ sddm-0.14.0/src/common/Configuration.h
+@@ -97,8 +97,9 @@ namespace SDDM {
Config(StateConfig, []()->QString{auto tmp = getpwnam("sddm"); return tmp ? QString::fromLocal8Bit(tmp->pw_dir) : QStringLiteral(STATE_DIR);}().append(QStringLiteral("/state.conf")),
Section(Last,
-- Entry(Session, QString, QString(), _S("Name of the session file of the last session selected. This session will be preselected when the login screen shows up."));
-+ Entry(Session, QString, _S("/usr/share/xsessions/plasma5.desktop"), _S("Name of the session file of the last session selected. This session will be preselected when the login screen shows up."));
- Entry(User, QString, QString(), _S("Name of the last logged-in user. This username will be preselected/shown when the login screen shows up"));
+- Entry(Session, QString, QString(), _S("Name of the session for the last logged-in user.\n"
+- "This session will be preselected when the login screen appears."));
++ Entry(Session, QString, _S("/usr/share/xsessions/plasma5.desktop"), _S("Name of the session for the last logged-in user.\n"
++ "This session will be preselected when the login screen appears.\n"
++ "This is Plasma 5 by default"));
+ Entry(User, QString, QString(), _S("Name of the last logged-in user.\n"
+ "This user will be preselected when the login screen appears"));
);
- );
++++++ sddm-0.13.0.tar.xz -> sddm-0.14.0.tar.xz ++++++
++++ 6197 lines of diff (skipped)
++++++ sddm-relaxed-auth.diff ++++++
--- /var/tmp/diff_new_pack.EuI2qa/_old 2016-11-28 15:03:38.000000000 +0100
+++ /var/tmp/diff_new_pack.EuI2qa/_new 2016-11-28 15:03:38.000000000 +0100
@@ -1,7 +1,7 @@
-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
+Index: sddm-0.14.0/src/daemon/XorgDisplayServer.cpp
+===================================================================
+--- sddm-0.14.0.orig/src/daemon/XorgDisplayServer.cpp
++++ sddm-0.14.0/src/daemon/XorgDisplayServer.cpp
@@ -281,6 +281,7 @@ namespace SDDM {
// set process environment
QProcessEnvironment env;
@@ -10,11 +10,11 @@
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 @@
+Index: sddm-0.14.0/src/helper/Backend.cpp
+===================================================================
+--- sddm-0.14.0.orig/src/helper/Backend.cpp
++++ sddm-0.14.0/src/helper/Backend.cpp
+@@ -27,6 +27,7 @@
#include "UserSession.h"
#include
participants (1)
-
root@hilbert.suse.de