diff --git a/.gitignore b/.gitignore index 01f68f2..e934f90 100644 --- a/.gitignore +++ b/.gitignore @@ -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.11.0.tar.gz diff --git a/0001-Replace-signal-handling-method-of-detecting-X-startu.patch b/0001-Replace-signal-handling-method-of-detecting-X-startu.patch new file mode 100644 index 0000000..f119d13 --- /dev/null +++ b/0001-Replace-signal-handling-method-of-detecting-X-startu.patch @@ -0,0 +1,109 @@ +From c1d1c0c8050d45a6316217f2e2ada632b8eddb66 Mon Sep 17 00:00:00 2001 +From: David Edmundson +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 + diff --git a/0019-handle-merge-of-libsystemd-journal-libsystemd-for-sy.patch b/0019-handle-merge-of-libsystemd-journal-libsystemd-for-sy.patch new file mode 100644 index 0000000..83462ce --- /dev/null +++ b/0019-handle-merge-of-libsystemd-journal-libsystemd-for-sy.patch @@ -0,0 +1,44 @@ +From 207d03e309ef8a4a94754d2d9d76c72b7ca503bd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +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 +--- + 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 + diff --git a/0028-Correcting-small-typo-in-TextConstants.qml.patch b/0028-Correcting-small-typo-in-TextConstants.qml.patch new file mode 100644 index 0000000..2104b1b --- /dev/null +++ b/0028-Correcting-small-typo-in-TextConstants.qml.patch @@ -0,0 +1,26 @@ +From 2b1a51ad3dce0d9e96ba30593b895541937fb1a5 Mon Sep 17 00:00:00 2001 +From: Simon Clemente +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 + diff --git a/0034-fix-typo.patch b/0034-fix-typo.patch new file mode 100644 index 0000000..a189ee6 --- /dev/null +++ b/0034-fix-typo.patch @@ -0,0 +1,33 @@ +From 815975c707faf23d458f28130edf108de9c5fa64 Mon Sep 17 00:00:00 2001 +From: Zach Ploskey +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 + diff --git a/0045-Provid-the-role-needsPassword-in-UserModel.patch b/0045-Provid-the-role-needsPassword-in-UserModel.patch new file mode 100644 index 0000000..8d91291 --- /dev/null +++ b/0045-Provid-the-role-needsPassword-in-UserModel.patch @@ -0,0 +1,64 @@ +From b6a43bb50bf055a327e50eb292565d08b8e6b6a5 Mon Sep 17 00:00:00 2001 +From: Leonardo +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 + diff --git a/0049-Set-showPassword-according-to-needsPassword-role-in-.patch b/0049-Set-showPassword-according-to-needsPassword-role-in-.patch new file mode 100644 index 0000000..f13e0f5 --- /dev/null +++ b/0049-Set-showPassword-according-to-needsPassword-role-in-.patch @@ -0,0 +1,25 @@ +From a823ae659f705e80546444a7e991c92b54e48826 Mon Sep 17 00:00:00 2001 +From: Leonardo +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 + diff --git a/0050-Add-a-note-about-needsPassword-role-and-shadow.patch b/0050-Add-a-note-about-needsPassword-role-and-shadow.patch new file mode 100644 index 0000000..ab38a7a --- /dev/null +++ b/0050-Add-a-note-about-needsPassword-role-and-shadow.patch @@ -0,0 +1,30 @@ +From 07866210800743a5930f6e77a4ad6cb85b8e51b7 Mon Sep 17 00:00:00 2001 +From: Pier Luigi Fiorini +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 + diff --git a/0059-Add-new-platformTheme-key-to-themes.patch b/0059-Add-new-platformTheme-key-to-themes.patch new file mode 100644 index 0000000..dd52ff7 --- /dev/null +++ b/0059-Add-new-platformTheme-key-to-themes.patch @@ -0,0 +1,29 @@ +From f7c44a4ece6ec90e33bb61080092430d34394569 Mon Sep 17 00:00:00 2001 +From: Pier Luigi Fiorini +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 + diff --git a/0069-Clock-Do-not-hardcode-date-format.patch b/0069-Clock-Do-not-hardcode-date-format.patch new file mode 100644 index 0000000..5ab75c1 --- /dev/null +++ b/0069-Clock-Do-not-hardcode-date-format.patch @@ -0,0 +1,26 @@ +From c7572aa01c9d36124eeacde54f37dcbd4bab6433 Mon Sep 17 00:00:00 2001 +From: Jerome Leclanche +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 + diff --git a/sddm-0.11.0-fedora_config.patch b/sddm-0.11.0-fedora_config.patch new file mode 100644 index 0000000..5e91748 --- /dev/null +++ b/sddm-0.11.0-fedora_config.patch @@ -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")); diff --git a/sddm.conf b/sddm.conf index 4f2ead5..8ec978a 100644 --- a/sddm.conf +++ b/sddm.conf @@ -24,7 +24,7 @@ [Theme] # Current theme name -#Current=fedora +#Current=01-breeze-fedora # Cursor theme #CursorTheme= diff --git a/sddm.spec b/sddm.spec index 76f5114..fd997e2 100644 --- a/sddm.spec +++ b/sddm.spec @@ -1,8 +1,8 @@ %global _hardened_build 1 Name: sddm -Version: 0.10.0 -Release: 6%{?dist} +Version: 0.11.0 +Release: 1%{?dist} # code GPLv2+, fedora theme CC-BY-SA License: GPLv2+ and CC-BY-SA Summary: QML based X11 desktop manager @@ -10,8 +10,21 @@ Summary: QML based X11 desktop manager Url: https://github.com/sddm/sddm Source0: https://github.com/sddm/sddm/archive/v%{version}.tar.gz -# Default configuration is handled by the binary itself -Source10: Configuration.h +## upstream patches +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 Source11: sddm.pam # Shamelessly stolen from gdm @@ -29,14 +42,14 @@ Source23: fedora-theme.conf Provides: service(graphical-login) = sddm BuildRequires: cmake -BuildRequires: systemd -BuildRequires: pam-devel BuildRequires: libxcb-devel +BuildRequires: pam-devel +BuildRequires: pkgconfig(systemd) +BuildRequires: python-docutils BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtdeclarative-devel BuildRequires: qt5-qttools-devel -BuildRequires: pkgconfig -BuildRequires: python-docutils +BuildRequires: systemd Obsoletes: kde-settings-sddm < 20-5 @@ -71,14 +84,17 @@ A collection of sddm themes, including: circles, elarun, maldives, maui. %prep -%setup -q -n %{name}-%{version} -cp %{SOURCE10} src/common/ +%autosetup -p1 %build -mkdir -p %{_target_platform} +mkdir %{_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 make %{?_smp_mflags} -C %{_target_platform} @@ -95,9 +111,9 @@ mkdir -p %{buildroot}%{_localstatedir}/run/sddm mkdir -p %{buildroot}%{_localstatedir}/lib/sddm # install fedora theme -install -Dpm 644 %{SOURCE21} %{buildroot}%{_datadir}/sddm/themes/fedora/Main.qml -install -Dpm 644 %{SOURCE22} %{buildroot}%{_datadir}/sddm/themes/fedora/metadata.desktop -install -Dpm 644 %{SOURCE23} %{buildroot}%{_datadir}/sddm/themes/fedora/theme.conf +install -Dpm 644 %{SOURCE21} %{buildroot}%{_datadir}/sddm/themes/02-fedora/Main.qml +install -Dpm 644 %{SOURCE22} %{buildroot}%{_datadir}/sddm/themes/02-fedora/metadata.desktop +install -Dpm 644 %{SOURCE23} %{buildroot}%{_datadir}/sddm/themes/02-fedora/theme.conf %pre @@ -109,6 +125,12 @@ exit 0 %post %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 %systemd_preun sddm.service @@ -137,11 +159,14 @@ exit 0 %{_datadir}/sddm/flags/ %{_datadir}/sddm/scripts/ %dir %{_datadir}/sddm/themes/ -# default fedora theme -%{_datadir}/sddm/themes/fedora/ +# default non-userlist fedora theme +%{_datadir}/sddm/themes/02-fedora/ # %%lang'ify ? -- rex %{_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 %{_datadir}/sddm/themes/circles/ @@ -149,7 +174,12 @@ exit 0 %{_datadir}/sddm/themes/maldives/ %{_datadir}/sddm/themes/maui/ + %changelog +* Thu Aug 06 2015 Rex Dieter - 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 - 0.10.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index 72c59df..eea211c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -281f920b61b706fbeb07b5397a9bcda2 v0.10.0.tar.gz +e110a7683867400dc9484d4744fd41dd v0.11.0.tar.gz