Skip to content

Commit

Permalink
nixos/xserver: Don't use exec in xkb-layouts-exist
Browse files Browse the repository at this point in the history
First of all, thanks to @pbogdan for getting this problem reproduced:

2014db3efcd2a#commitcomment-22815396

Also thanks to @vcunat for bringing this to my attention:

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>
  • Loading branch information
aszlig committed Jun 28, 2017
1 parent 35b974a commit e82d126
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions nixos/modules/services/x11/xserver.nix
Expand Up @@ -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
Expand Down

0 comments on commit e82d126

Please sign in to comment.