Merge branch 'master--plasma-5'

This commit is contained in:
Thomas Tuegel 2017-03-24 10:39:30 -05:00
commit 39fdbbb71e
No known key found for this signature in database
GPG key ID: 22CBF5249D4B4D59
5 changed files with 102 additions and 42 deletions

View file

@ -72,7 +72,7 @@ in rec {
(all nixos.tests.ecryptfs)
(all nixos.tests.ipv6)
(all nixos.tests.i3wm)
#(all nixos.tests.plasma5) # temporarily, see #24240
(all nixos.tests.plasma5)
#(all nixos.tests.lightdm)
(all nixos.tests.login)
(all nixos.tests.misc)
@ -92,7 +92,7 @@ in rec {
(all nixos.tests.openssh)
(all nixos.tests.printing)
(all nixos.tests.proxy)
(all nixos.tests.sddm)
(all nixos.tests.sddm.default)
(all nixos.tests.simple)
(all nixos.tests.udisks2)
(all nixos.tests.xfce)

View file

@ -296,7 +296,7 @@ in rec {
tests.quake3 = callTest tests/quake3.nix {};
tests.runInMachine = callTest tests/run-in-machine.nix {};
tests.samba = callTest tests/samba.nix {};
tests.sddm = callTest tests/sddm.nix {};
tests.sddm = callSubTests tests/sddm.nix {};
tests.simple = callTest tests/simple.nix {};
tests.smokeping = callTest tests/smokeping.nix {};
tests.taskserver = callTest tests/taskserver.nix {};

View file

@ -8,25 +8,27 @@ import ./make-test.nix ({ pkgs, ...} :
machine = { lib, ... }: {
imports = [ ./common/user-account.nix ];
virtualisation.memorySize = 1024;
services.xserver.enable = true;
services.xserver.displayManager.sddm = {
enable = true;
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.desktopManager.default = "plasma5";
virtualisation.writableStore = false; # FIXME
virtualisation.memorySize = 1024;
};
testScript = { nodes, ... }:
let xdo = "${pkgs.xdotool}/bin/xdotool"; in
''
enableOCR = true;
testScript = { nodes, ... }: let
user = nodes.machine.config.users.extraUsers.alice;
xdo = "${pkgs.xdotool}/bin/xdotool";
in ''
startAll;
# Wait for display manager to start
$machine->waitForText(qr/${user.description}/);
$machine->screenshot("sddm");
# Log in
$machine->sendChars("${user.password}\n");
$machine->waitForFile("/home/alice/.Xauthority");
$machine->succeed("xauth merge ~alice/.Xauthority");

View file

@ -1,26 +1,66 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "sddm";
{ system ? builtins.currentSystem }:
machine = { lib, ... }: {
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
with import ../lib/testing.nix { inherit system; };
let
inherit (pkgs) lib;
tests = {
default = {
name = "sddm";
machine = { lib, ... }: {
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
};
enableOCR = true;
testScript = { nodes, ... }: let
user = nodes.machine.config.users.extraUsers.alice;
in ''
startAll;
$machine->waitForText(qr/ALICE/);
$machine->screenshot("sddm");
$machine->sendChars("${user.password}\n");
$machine->waitForFile("/home/alice/.Xauthority");
$machine->succeed("xauth merge ~alice/.Xauthority");
$machine->waitForWindow("^IceWM ");
'';
};
autoLogin = {
name = "sddm-autologin";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ttuegel ];
};
machine = { lib, ... }: {
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.displayManager.sddm = {
enable = true;
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
services.xserver.desktopManager.default = "none";
};
testScript = { nodes, ... }: ''
startAll;
$machine->waitForFile("/home/alice/.Xauthority");
$machine->succeed("xauth merge ~alice/.Xauthority");
$machine->waitForWindow("^IceWM ");
'';
};
};
enableOCR = true;
testScript = { nodes, ... }: let
user = nodes.machine.config.users.extraUsers.alice;
in ''
startAll;
$machine->waitForText(qr/ALICE/);
$machine->screenshot("sddm");
$machine->sendChars("${user.password}\n");
$machine->waitForFile("/home/alice/.Xauthority");
$machine->succeed("xauth merge ~alice/.Xauthority");
$machine->waitForWindow("^IceWM ");
'';
})
in
lib.mapAttrs (lib.const makeTest) tests

View file

@ -1,4 +1,4 @@
{ stdenv, makeQtWrapper, fetchFromGitHub, fetchpatch
{ stdenv, lib, makeQtWrapper, fetchFromGitHub, fetchpatch
, cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs, lndir
, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd
, themes
@ -28,10 +28,12 @@ let
nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
buildInputs = [
libxcb libpthreadstubs libXdmcp libXau qtbase pam systemd
libxcb libpthreadstubs libXdmcp libXau pam systemd
];
propagatedBuildInputs = [ qtdeclarative ];
propagatedBuildInputs = [
qtbase qtdeclarative
];
cmakeFlags = [
"-DCONFIG_FILE=/etc/sddm.conf"
@ -80,6 +82,22 @@ stdenv.mkDerivation {
installPhase = ''
runHook preInstall
propagated=
for i in $unwrapped $themes; do
findInputs $i propagated propagated-user-env-packages
if [ -z "$crossConfig" ]; then
findInputs $i propagated propagated-native-build-inputs
else
findInputs $i propagated propagated-build-inputs
fi
done
for pkg in $propagated; do
addToSearchPath RUNTIME_XDG_DATA_DIRS "$pkg/share"
addToSearchPath RUNTIME_XDG_CONFIG_DIRS "$pkg/etc/xdg"
done
mkdir -p "$out/bin"
makeQtWrapper "$unwrapped/bin/sddm" "$out/bin/sddm"
mkdir -p "$out/share/sddm"