Merge pull request #43243 from peterhoeg/f/sddmqt

sddm: use tmpfiles.d to wipe QML cache
This commit is contained in:
Thomas Tuegel 2018-07-14 13:16:18 -05:00 committed by GitHub
commit 5ea799defc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,17 +19,6 @@ let
Xsetup = pkgs.writeScript "Xsetup" '' Xsetup = pkgs.writeScript "Xsetup" ''
#!/bin/sh #!/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} ${cfg.setupScript}
''; '';
@ -285,5 +274,20 @@ in
# To enable user switching, allow sddm to allocate TTYs/displays dynamically. # To enable user switching, allow sddm to allocate TTYs/displays dynamically.
services.xserver.tty = null; services.xserver.tty = null;
services.xserver.display = null; services.xserver.display = null;
systemd.tmpfiles.rules = [
# 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.
# This was supposedly fixed in Qt 5.9.2 however it has been reported with
# 5.10 and 5.11 as well. The initial workaround was to delete the directory
# in the Xsetup script but that doesn't do anything.
# Instead we use tmpfiles.d to ensure it gets wiped.
# This causes a small but perceptible delay when SDDM starts.
"e ${config.users.users.sddm.home}/.cache - - - 0"
];
}; };
} }