From f0151452d236c38580c560967756a74bc74efc8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 10 Nov 2016 19:47:01 +0100 Subject: [PATCH] sddm: update to 0.14.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andreas Müller --- ...ample-configutation-we-cannot-run-sd.patch | 36 ++++++ ...st-successful-session-if-no-autologi.patch | 60 ++++++++++ .../recipes-graphics/sddm/files/sddm.conf | 110 ++++++++++++------ .../recipes-graphics/sddm/sddm_git.bb | 15 ++- 4 files changed, 178 insertions(+), 43 deletions(-) create mode 100644 recipes-misc/recipes-graphics/sddm/files/0002-do-not-create-example-configutation-we-cannot-run-sd.patch create mode 100644 recipes-misc/recipes-graphics/sddm/files/0003-autologin-try-last-successful-session-if-no-autologi.patch diff --git a/recipes-misc/recipes-graphics/sddm/files/0002-do-not-create-example-configutation-we-cannot-run-sd.patch b/recipes-misc/recipes-graphics/sddm/files/0002-do-not-create-example-configutation-we-cannot-run-sd.patch new file mode 100644 index 00000000..c3ee0dba --- /dev/null +++ b/recipes-misc/recipes-graphics/sddm/files/0002-do-not-create-example-configutation-we-cannot-run-sd.patch @@ -0,0 +1,36 @@ +From 78099686910b727f4c27819a56e5dfaa41aaab05 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 10 Nov 2016 18:54:47 +0100 +Subject: [PATCH] do not create example configutation - we cannot run sddm + cross +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + src/daemon/CMakeLists.txt | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt +index 8dccab6..b36a5fd 100644 +--- a/src/daemon/CMakeLists.txt ++++ b/src/daemon/CMakeLists.txt +@@ -51,11 +51,4 @@ endif() + + install(TARGETS sddm DESTINATION "${CMAKE_INSTALL_BINDIR}") + +-# Generate and install the default config file +-add_custom_command(COMMAND sddm --example-config > "${CMAKE_BINARY_DIR}/sddm.conf" +- OUTPUT "${CMAKE_BINARY_DIR}/sddm.conf" +- COMMENT "Generate default sddm.conf file" +- DEPENDS sddm +-) +-add_custom_target(generate_config_file ALL DEPENDS "${CMAKE_BINARY_DIR}/sddm.conf") +-install(FILES "${CMAKE_BINARY_DIR}/sddm.conf" DESTINATION "${CMAKE_INSTALL_FULL_SYSCONFDIR}") ++ +-- +2.5.5 + diff --git a/recipes-misc/recipes-graphics/sddm/files/0003-autologin-try-last-successful-session-if-no-autologi.patch b/recipes-misc/recipes-graphics/sddm/files/0003-autologin-try-last-successful-session-if-no-autologi.patch new file mode 100644 index 00000000..a0be51f8 --- /dev/null +++ b/recipes-misc/recipes-graphics/sddm/files/0003-autologin-try-last-successful-session-if-no-autologi.patch @@ -0,0 +1,60 @@ +From 987178bf27823f48804f29c57b0d18946e3b6d6b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 10 Nov 2016 20:10:49 +0100 +Subject: [PATCH] autologin: try last successful session if no autologin + session is set +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* Have a system here with many sessions and want to autologin the last I used +* On first boot operator can select which session to select for autologin + +Signed-off-by: Andreas Müller +--- + src/common/Configuration.h | 2 +- + src/daemon/Display.cpp | 8 ++++++-- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/common/Configuration.h b/src/common/Configuration.h +index f2e7ae1..44b9c2e 100644 +--- a/src/common/Configuration.h ++++ b/src/common/Configuration.h +@@ -91,7 +91,7 @@ namespace SDDM { + + Section(Autologin, + Entry(User, QString, QString(), _S("Username for autologin session")); +- Entry(Session, QString, QString(), _S("Name of session file for autologin session")); ++ Entry(Session, QString, QString(), _S("Name of session file for autologin session (if empty try last logged in)")); + Entry(Relogin, bool, false, _S("Whether sddm should automatically log back into sessions when they exit")); + ); + ); +diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp +index 2c9b0d3..785c941 100644 +--- a/src/daemon/Display.cpp ++++ b/src/daemon/Display.cpp +@@ -109,7 +109,11 @@ namespace SDDM { + Session::Type sessionType = Session::X11Session; + + // determine session type +- const QString &autologinSession = mainConfig.Autologin.Session.get(); ++ QString autologinSession = mainConfig.Autologin.Session.get(); ++ // not configured: try last successful logged in ++ if (autologinSession.isEmpty()) { ++ autologinSession = stateConfig.Last.Session.get(); ++ } + if (findSessionEntry(mainConfig.X11.SessionDir.get(), autologinSession)) { + sessionType = Session::X11Session; + } else if (findSessionEntry(mainConfig.Wayland.SessionDir.get(), autologinSession)) { +@@ -140,7 +144,7 @@ namespace SDDM { + qDebug() << "Display server started."; + + if ((daemonApp->first || mainConfig.Autologin.Relogin.get()) && +- !mainConfig.Autologin.User.get().isEmpty() && !mainConfig.Autologin.Session.get().isEmpty()) { ++ !mainConfig.Autologin.User.get().isEmpty()) { + // reset first flag + daemonApp->first = false; + +-- +2.5.5 + diff --git a/recipes-misc/recipes-graphics/sddm/files/sddm.conf b/recipes-misc/recipes-graphics/sddm/files/sddm.conf index a781aed7..56ee90b2 100644 --- a/recipes-misc/recipes-graphics/sddm/files/sddm.conf +++ b/recipes-misc/recipes-graphics/sddm/files/sddm.conf @@ -1,36 +1,47 @@ [Autologin] -# Autologin again on session exit -#Relogin=false +# Whether sddm should automatically log back into sessions when they exit +Relogin=false -# Autologin session -#Session= +# Name of session file for autologin session (if empty try last logged in) +Session= -# Autologin user -#User= +# Username for autologin session +User= [General] # Halt command -HaltCommand=/bin/systemctl poweroff +HaltCommand=/usr/bin/systemctl poweroff -# Initial NumLock state -# Valid values: on|off|none +# Input method module +InputMethod= + +# Initial NumLock state. Can be on, off or none. # If property is set to none, numlock won't be changed -#Numlock=none +# NOTE: Currently ignored if autologin is enabled. +Numlock=none # Reboot command -RebootCommand=/bin/systemctl reboot +RebootCommand=/usr/bin/systemctl reboot [Theme] # Current theme name -Current=maui +Current= -# Cursor theme -#CursorTheme= +# Cursor theme used in the greeter +CursorTheme= -# Face icon directory -# The files should be in username.face.icon format +# Number of users to use as threshold +# above which avatars are disabled +# unless explicitly enabled with EnableAvatars +DisableAvatarsThreshold=7 + +# Enable display of custom user avatars +EnableAvatars=true + +# Global directory for user avatars +# The files should be named .face.icon FacesDir=/usr/share/sddm/faces # Theme directory path @@ -38,47 +49,72 @@ ThemeDir=/usr/share/sddm/themes [Users] -# Default $PATH -DefaultPath=/usr/bin:/usr/bin/qt5 +# Default $PATH for logged in users +DefaultPath=/bin:/usr/bin:/usr/local/bin -# Hidden shells +# Comma-separated list of shells. # Users with these shells as their default won't be listed -#HideShells= +HideShells= -# Hidden users -#HideUsers= +# Comma-separated list of users that should not be listed +HideUsers= # Maximum user id for displayed users -#MaximumUid=65000 +MaximumUid=60000 # Minimum user id for displayed users MinimumUid=1000 # Remember the session of the last successfully logged in user -#RememberLastSession=true +RememberLastSession=true # Remember the last successfully logged in user -#RememberLastUser=true +RememberLastUser=true -[XDisplay] -# Xsetup script path -# A script to execute when starting the display server -#DisplayCommand=/usr/share/sddm/scripts/Xsetup +[Wayland] +# Path to a script to execute when starting the desktop session +SessionCommand=/usr/share/sddm/scripts/wayland-session + +# Directory containing available Wayland sessions +SessionDir=/usr/share/wayland-sessions + +# Path to the user session log file +SessionLogFile=.local/share/sddm/wayland-session.log + + +[X11] +# Path to a script to execute when starting the display server +DisplayCommand=/usr/share/sddm/scripts/Xsetup + +# Path to a script to execute when stopping the display server +DisplayStopCommand=/usr/share/sddm/scripts/Xstop -# Minimum VT # The lowest virtual terminal number that will be used. -#MinimumVT=1 +MinimumVT=1 -# X server path +# Arguments passed to the X server invocation +ServerArguments=-nolisten tcp + +# Path to X server binary ServerPath=/usr/bin/X -# Xsession script path -# A script to execute when starting the desktop session -#SessionCommand=/etc/X11/xinit/Xsession +# Path to a script to execute when starting the desktop session +SessionCommand=/usr/share/sddm/scripts/Xsession -# Session description directory +# Directory containing available X sessions SessionDir=/usr/share/xsessions -# Xauth path +# Path to the user session log file +SessionLogFile=.local/share/sddm/xorg-session.log + +# Path to the Xauthority file +UserAuthFile=.Xauthority + +# Path to xauth binary XauthPath=/usr/bin/xauth + +# Path to Xephyr binary +XephyrPath=/usr/bin/Xephyr + + diff --git a/recipes-misc/recipes-graphics/sddm/sddm_git.bb b/recipes-misc/recipes-graphics/sddm/sddm_git.bb index a03e7fa0..50f997b8 100644 --- a/recipes-misc/recipes-graphics/sddm/sddm_git.bb +++ b/recipes-misc/recipes-graphics/sddm/sddm_git.bb @@ -1,9 +1,8 @@ SUMMARY = "SDDM is a modern display manager for X11" -LICENSE = "GPLv2 & CC-BY-3.0 & CC-BY-NC-SA-3.0" +LICENSE = "GPLv2 & CC-BY-3.0" LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING-CC-BY-3.0;md5=3f91257948001a369d427b9028de84b2 \ - file://COPYING-CC-BY-SA-3.0;md5=c0e44077d8998dd1cd1324f7bc4d7b67 \ + file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b \ + file://LICENSE.CC-BY-3.0;md5=36b7342d5619a3a0d3b581e89803ec25 \ " REQUIRED_DISTRO_FEATURES = "x11" @@ -14,15 +13,19 @@ DEPENDS += "qtbase qtdeclarative qttools-native libxcb" # REVISIT optionals DEPENDS += "libpam" +# Note: we should check default config changes by running sddm --example-config on target. +# This is usually done during build but does not work for our cross environment SRC_URI = " \ git://github.com/sddm/${BPN}.git;protocol=git;branch=master \ file://0001-fix-qml-install-dir.patch \ + file://0002-do-not-create-example-configutation-we-cannot-run-sd.patch \ + file://0003-autologin-try-last-successful-session-if-no-autologi.patch \ file://sddm.pam \ file://sddm-autologin.pam \ file://sddm.conf \ " -SRCREV = "f3c810407e4e79597dcdc76508f08c33152fe3cd" -PV = "0.13.0" +SRCREV = "43c900569081cdbf889c88c08c631888b56c4a8e" +PV = "0.14.0" S = "${WORKDIR}/git"