From 5411b753df63970fddfc9a20927f69f27da5eb67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jeremy=20B=C3=ADcha?= Date: Fri, 13 Mar 2026 17:45:34 -0400 Subject: [PATCH] Cherry-pick patch to fix installer crash when using lomiri-greeter LP: #2143868 --- debian/patches/lightdm-greeter-path.patch | 44 +++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 45 insertions(+) create mode 100644 debian/patches/lightdm-greeter-path.patch diff --git a/debian/patches/lightdm-greeter-path.patch b/debian/patches/lightdm-greeter-path.patch new file mode 100644 index 0000000..941f540 --- /dev/null +++ b/debian/patches/lightdm-greeter-path.patch @@ -0,0 +1,44 @@ +From: Adriaan de Groot +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): diff --git a/debian/patches/series b/debian/patches/series index e58ead3..a5af825 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -8,3 +8,4 @@ repair-icon-size.patch populate-bootloader-installation-path.patch allow-ignore-software-db-update-failure.patch sddm-test-fix.patch +lightdm-greeter-patch.patch