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 - fab...@ritter-vogt.de + +- Fix %post and %postun of branding subpackages + +------------------------------------------------------------------- +Mon Nov 21 20:55:27 UTC 2016 - fab...@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 - fab...@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 - fab...@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 <bastian.beisc...@gmail.com> 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 <pierluigi.fior...@gmail.com> 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 <stany...@gmail.com> 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 <stany...@gmail.com> --- src/common/Configuration.h | 1 + src/greeter/GreeterApp.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/common/Configuration.h b/src/common/Configuration.h index f790343..f2e7ae1 100644 --- a/src/common/Configuration.h +++ b/src/common/Configuration.h @@ -42,6 +42,7 @@ namespace SDDM { Entry(Numlock, NumState, NUM_NONE, _S("Initial NumLock state. Can be on, off or none.\n" "If property is set to none, numlock won't be changed\n" "NOTE: Currently ignored if autologin is enabled.")); + Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling")); Entry(InputMethod, QString, QString(), _S("Input method module")); // Name Entries (but it's a regular class again) Section(Theme, diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp index 6e48ea4..39022a0 100644 --- a/src/greeter/GreeterApp.cpp +++ b/src/greeter/GreeterApp.cpp @@ -247,7 +247,12 @@ int main(int argc, char **argv) { qInstallMessageHandler(SDDM::GreeterMessageHandler); // HiDPI - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + if (SDDM::mainConfig.EnableHiDPI.get()) { + qDebug() << "High-DPI autoscaling Enabled"; + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + } else { + qDebug() << "High-DPI autoscaling Not Enabled"; + } QStringList arguments; -- 2.10.1 ++++++ 0003-elarun-Update-date-and-time.patch ++++++ >From 28822b9242beecaebb4d1978dc641daccc72bb60 Mon Sep 17 00:00:00 2001 From: Hendrik Lehmbruch <hlehmbr...@gmx.net> 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 <guoyunhebr...@gmail.com> 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 <da...@davidedmundson.co.uk> 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 <QtCore/QProcessEnvironment> @@ -22,11 +22,11 @@ #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()); +@@ -69,6 +70,7 @@ namespace SDDM { + .arg(QString::fromLocal8Bit(pw->pw_dir)) + .arg(mainConfig.XDisplay.UserAuthFile.get()); + env.insert(QStringLiteral("XAUTHORITY"), value); ++ 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); - } ++++++ sddm-service-handle-plymouth.patch ++++++ --- /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,12 +1,12 @@ -diff --git a/services/sddm.service.in b/services/sddm.service.in -index b0cea02128f949ceeadae2ecca61faf668ea8728..fffa5c2dfc37acafe1cab2528e3323fca665e699 100644 ---- a/services/sddm.service.in -+++ b/services/sddm.service.in -@@ -6,6 +6,7 @@ After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service +Index: sddm-0.14.0/services/sddm.service.in +=================================================================== +--- sddm-0.14.0.orig/services/sddm.service.in ++++ sddm-0.14.0/services/sddm.service.in +@@ -6,6 +6,7 @@ After=systemd-user-sessions.service gett [Service] ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/sddm +ExecStartPre=-@CMAKE_INSTALL_FULL_BINDIR@/plymouth quit --retain-splash Restart=always - #PrivateTmp=yes + [Install] ++++++ sddm.conf ++++++ --- /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,5 +1,5 @@ [Theme] -Current=maui +Current= CursorTheme=breeze_cursors [XDisplay] ++++++ sysconfig-support.patch ++++++ --- /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,8 +1,8 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 43796954d519fda27133dbaed6db50141b8ecf04..3071ea79ebaf9e5c20851f2c2512339f0f06f25c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -156,6 +156,7 @@ set(SESSION_COMMAND "${DATA_INSTALL_DIR}/scripts/Xsession" +Index: sddm-0.14.0/CMakeLists.txt +=================================================================== +--- sddm-0.14.0.orig/CMakeLists.txt ++++ sddm-0.14.0/CMakeLists.txt +@@ -160,6 +160,7 @@ set(SESSION_COMMAND "${DATA_ set(WAYLAND_SESSION_COMMAND "${DATA_INSTALL_DIR}/scripts/wayland-session" CACHE PATH "Script to execute when starting the Wayland desktop session") set(CONFIG_FILE "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf" CACHE PATH "Path of the sddm config file") @@ -10,23 +10,23 @@ set(LOG_FILE "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/sddm.log" CACHE PATH "Path of the sddm log file") set(DBUS_CONFIG_FILENAME "org.freedesktop.DisplayManager.conf" CACHE STRING "Name of the sddm config file") set(COMPONENTS_TRANSLATION_DIR "${DATA_INSTALL_DIR}/translations" CACHE PATH "Components translations directory") -diff --git a/src/common/Configuration.h b/src/common/Configuration.h -index c9af1b72cd0faee069264719ff26cc7d7cba204c..076e856e5ca592bf1b3dcd48a6511fc2395159a8 100644 ---- a/src/common/Configuration.h -+++ b/src/common/Configuration.h -@@ -83,7 +83,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 +@@ -90,7 +90,7 @@ namespace SDDM { + Section(Autologin, - Entry(User, QString, QString(), _S("Autologin user")); -- Entry(Session, QString, QString(), _S("Autologin session")); -+ Entry(Session, QString, _S("plasma5.desktop"), _S("Autologin session")); - Entry(Relogin, bool, false, _S("Autologin again on session exit")); + Entry(User, QString, QString(), _S("Username for autologin session")); +- Entry(Session, QString, QString(), _S("Name of session file for autologin session")); ++ Entry(Session, QString, _S("plasma5.desktop"), _S("Name of session file for autologin session")); + Entry(Relogin, bool, false, _S("Whether sddm should automatically log back into sessions when they exit")); ); ); -diff --git a/src/common/Constants.h.in b/src/common/Constants.h.in -index 2be895e730da5affb2cd4f6052918a8ab4b2672a..bb935503c08e8ad617f83f9df73d5c7703737686 100644 ---- a/src/common/Constants.h.in -+++ b/src/common/Constants.h.in +Index: sddm-0.14.0/src/common/Constants.h.in +=================================================================== +--- sddm-0.14.0.orig/src/common/Constants.h.in ++++ sddm-0.14.0/src/common/Constants.h.in @@ -33,6 +33,7 @@ #define WAYLAND_SESSION_COMMAND "@WAYLAND_SESSION_COMMAND@" @@ -35,10 +35,10 @@ #define LOG_FILE "@LOG_FILE@" #define PID_FILE "@PID_FILE@" #define MINIMUM_VT @MINIMUM_VT@ -diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp -index 2b76c6dbe64b3d35a0e6b1849cf10c250ead5f53..0d62358dc515826d18d9eb825a83149cf268ee9d 100644 ---- a/src/daemon/Display.cpp -+++ b/src/daemon/Display.cpp +Index: sddm-0.14.0/src/daemon/Display.cpp +=================================================================== +--- sddm-0.14.0.orig/src/daemon/Display.cpp ++++ sddm-0.14.0/src/daemon/Display.cpp @@ -35,6 +35,7 @@ #include <QDebug> #include <QFile> @@ -47,7 +47,7 @@ #include <pwd.h> #include <unistd.h> -@@ -114,8 +115,19 @@ namespace SDDM { +@@ -139,8 +140,19 @@ namespace SDDM { // log message qDebug() << "Display server started.";