calamares-packaging/debian/patches/lightdm-greeter-path.patch

45 lines
2.0 KiB
Diff

From: Adriaan de Groot <groot@kde.org>
Date: Tue, 10 Mar 2026 14:49:55 +0100
Subject: [displaymanager] Support alternative greeter paths in lightdm
Origin: upstream 3.4.2
---
src/modules/displaymanager/main.py | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/modules/displaymanager/main.py b/src/modules/displaymanager/main.py
index 73a884df7..143b0db15 100644
--- a/src/modules/displaymanager/main.py
+++ b/src/modules/displaymanager/main.py
@@ -664,16 +664,20 @@ class DMlightdm(DisplayManager):
a .desktop file that specifies where the actual executable is. May return
None to indicate nothing-was-found.
"""
- greeters_dir = "usr/share/xgreeters"
- greeters_target_path = os.path.join(self.root_mount_point, greeters_dir)
- available_names = os.listdir(greeters_target_path)
- available_names.sort()
- desktop_names = [n for n in self.preferred_greeters if n in available_names] # Preferred ones
- if desktop_names:
- return desktop_names[0]
- desktop_names = [n for n in available_names if n.endswith(".desktop")] # .. otherwise any .desktop
- if desktop_names:
- return desktop_names[0]
+ for greeters_dir in ( "usr/share/xgreeters", "usr/share/lightdm/greeters", ):
+ greeters_target_path = os.path.join(self.root_mount_point, greeters_dir)
+ available_names = []
+ try:
+ available_names = os.listdir(greeters_target_path)
+ except FileNotFoundError:
+ continue
+ available_names.sort()
+ desktop_names = [n for n in self.preferred_greeters if n in available_names] # Preferred ones
+ if desktop_names:
+ return desktop_names[0]
+ desktop_names = [n for n in available_names if n.endswith(".desktop")] # .. otherwise any .desktop
+ if desktop_names:
+ return desktop_names[0]
return None
def greeter_setup(self):