summary refs log tree commit diff
path: root/nixos/modules/services/x11/display-managers/sddm.nix
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2017-10-19 07:09:01 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2017-10-19 07:09:01 -0500
commitdae260034cad3ec5d644e798d6e6947f3074c9dc (patch)
treebf927b5f94ccde5aae11da0c8809c45cf4650a15 /nixos/modules/services/x11/display-managers/sddm.nix
parentef4a6bd1817276c23236cbce906ec551fa4b7a9f (diff)
downloadnixpkgs-dae260034cad3ec5d644e798d6e6947f3074c9dc.tar
nixpkgs-dae260034cad3ec5d644e798d6e6947f3074c9dc.tar.gz
nixpkgs-dae260034cad3ec5d644e798d6e6947f3074c9dc.tar.bz2
nixpkgs-dae260034cad3ec5d644e798d6e6947f3074c9dc.tar.lz
nixpkgs-dae260034cad3ec5d644e798d6e6947f3074c9dc.tar.xz
nixpkgs-dae260034cad3ec5d644e798d6e6947f3074c9dc.tar.zst
nixpkgs-dae260034cad3ec5d644e798d6e6947f3074c9dc.zip
nixos/sddm: delete QML cache
Prior to Qt 5.9.2, there is a QML cache invalidation bug which causes SDDM to
segfault when upgrading Plasma.

See also: https://bugreports.qt.io/browse/QTBUG-62302
Diffstat (limited to 'nixos/modules/services/x11/display-managers/sddm.nix')
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix11
1 files changed, 11 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index e6cc02e4d49..facaea131ae 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -19,6 +19,17 @@ let
 
   Xsetup = pkgs.writeScript "Xsetup" ''
     #!/bin/sh
+
+    # Prior to Qt 5.9.2, there is a QML cache invalidation bug which sometimes
+    # strikes new Plasma 5 releases. If the QML cache is not invalidated, SDDM
+    # will segfault without explanation. We really tore our hair out for awhile
+    # before finding the bug:
+    # https://bugreports.qt.io/browse/QTBUG-62302
+    # We work around the problem by deleting the QML cache before startup. It
+    # will be regenerated, causing a small but perceptible delay when SDDM
+    # starts.
+    rm -fr /var/lib/sddm/.cache/sddm-greeter/qmlcache
+
     ${cfg.setupScript}
   '';