diff options
author | aszlig <aszlig@redmoonstudios.org> | 2017-06-28 21:25:10 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2017-06-28 21:39:19 +0200 |
commit | e82d1262123710b257038c5482a89f6a81ad6e81 (patch) | |
tree | 5b49050af131368bf21e798633da56869480cbb0 /nixos/modules/services/x11/xserver.nix | |
parent | 35b974a8e9a3234088502e289876ccff526950de (diff) | |
download | nixlib-e82d1262123710b257038c5482a89f6a81ad6e81.tar nixlib-e82d1262123710b257038c5482a89f6a81ad6e81.tar.gz nixlib-e82d1262123710b257038c5482a89f6a81ad6e81.tar.bz2 nixlib-e82d1262123710b257038c5482a89f6a81ad6e81.tar.lz nixlib-e82d1262123710b257038c5482a89f6a81ad6e81.tar.xz nixlib-e82d1262123710b257038c5482a89f6a81ad6e81.tar.zst nixlib-e82d1262123710b257038c5482a89f6a81ad6e81.zip |
nixos/xserver: Don't use exec in xkb-layouts-exist
First of all, thanks to @pbogdan for getting this problem reproduced: https://github.com/NixOS/nixpkgs/commit/2014db3efcd2a#commitcomment-22815396 Also thanks to @vcunat for bringing this to my attention: https://github.com/NixOS/nixpkgs/commit/44c64fef16ed5#commitcomment-22813503 Although it is not entirely clear why Nix has killed the build prior to finishing, it seems to be related to the process substition I was using. So instead of using "exec touch", let's wrap this inside an if so we don't exit too early. Tested this against all sub-tests in nixos/tests/keymap.nix and also a few configurations with wrong keyboard layout definitions. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'nixos/modules/services/x11/xserver.nix')
-rw-r--r-- | nixos/modules/services/x11/xserver.nix | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 1f4fb05129d4..01bab8fccadb 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -651,10 +651,13 @@ in system.extraDependencies = singleton (pkgs.runCommand "xkb-layouts-exist" { inherit (cfg) layout xkbDir; } '' - set -x - sed -n -e ':i /^! \(layout\|variant\) *$/ { - :l; n; /^!/bi; s/^ *\([^ ]\+\).*/\1/p; tl - }' "$xkbDir/rules/base.lst" | grep -qxF "$layout" && exec touch "$out" + if sed -n -e ':i /^! \(layout\|variant\) *$/ { + :l; n; /^!/bi; s/^ *\([^ ]\+\).*/\1/p; tl + }' "$xkbDir/rules/base.lst" | grep -qxF "$layout" + then + touch "$out" + exit 0 + fi cat >&2 <<-EOF |