Merge branch 'issue-1253'

FIXES #1253
This commit is contained in:
Adriaan de Groot 2019-10-07 17:05:24 +02:00
commit a2867d71af
2 changed files with 28 additions and 8 deletions

View File

@ -1,9 +1,17 @@
# Configure one or more display managers (e.g. SDDM)
# with a "best effort" approach.
#
# This module also sets up autologin, if the feature is enabled in
# globalstorage (where it would come from the users page).
---
#The DM module attempts to set up all the DMs found in this list, in that precise order.
#It also sets up autologin, if the feature is enabled in globalstorage.
#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here.
# The DM module attempts to set up all the DMs found in this list, in the
# precise order listed. The displaymanagers list can also be set in
# globalstorage, and in that case it overrides the setting here.
#
# If *sysconfigSetup* is set to *true* (see below, only relevant for
# openSUSE derivatives) then this list is ignored and only sysconfig
# is attempted. You can also list "sysconfig" in this list instead.
#
displaymanagers:
- slim
- sddm
@ -41,6 +49,10 @@ displaymanagers:
#packages, and best left to them. Therefore, it is disabled by default.
basicSetup: false
#If true, setup autologin for openSUSE. This only makes sense on openSUSE
#derivatives or other systems where /etc/sysconfig/displaymanager exists.
# If true, setup autologin for openSUSE. This only makes sense on openSUSE
# derivatives or other systems where /etc/sysconfig/displaymanager exists.
#
# The preferred way to pick sysconfig is to just list it in the
# *displaymanagers* list (as the only one).
#
sysconfigSetup: false

View File

@ -850,6 +850,13 @@ class DMsysconfig(DisplayManager):
def greeter_setup(self):
pass
# For openSUSE-derivatives, there is only sysconfig to configure,
# and no special DM configuration for it. Instead, check that
# sysconfig is available in the target.
def have_dm(self):
config = "{!s}/etc/sysconfig/displaymanager".format(self.root_mount_point)
return os.path.exists(config)
# Collect all the subclasses of DisplayManager defined above,
# and index them based on the name property of each class.
@ -879,6 +886,10 @@ def run():
if libcalamares.globalstorage.contains("displayManagers"):
displaymanagers = libcalamares.globalstorage.value("displayManagers")
if ("sysconfigSetup" in libcalamares.job.configuration
and libcalamares.job.configuration["sysconfigSetup"]):
displaymanagers = ["sysconfig"]
if not displaymanagers:
return (
_("No display managers selected for the displaymanager module."),
@ -890,9 +901,6 @@ def run():
root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
dm_impl = []
dm_names = displaymanagers[:]
if ("sysconfigSetup" in libcalamares.job.configuration
and libcalamares.job.configuration["sysconfigSetup"]):
dm_names.append("sysconfig")
for dm in dm_names:
# Find the implementation class
dm_instance = None