zsh: patch _setxkbmap completion script

Instead of searching `/usr` it should search for the `xkb`,
$XDG_DATA_DIRS will be searched. With this approach we allow compliance
on NixOS and non-NixOS systems to find `symbols` in the `xkb` directory.

The patch has been accepted by upstream, but isn't released yet, so this
is mainly a temporary fix until we can bump ZSH to the next stable version.

The `xserver` module links `/share/X11/xkb` to `/run/current-system` to
make this possible.

The fix can be tested inside the following VM:

```
{
  zshtest = {
    programs.zsh.enable = true;
    users.extraUsers.vm = {
      password = "vm";
      isNormalUser = true;
    };
    services.xserver.enable = true;
  };
}
```

Fixes #46025
This commit is contained in:
Maximilian Bosch 2018-09-06 01:04:40 +02:00
parent f70dc57ad3
commit 18d461533b
No known key found for this signature in database
GPG Key ID: 091DBF4D1FC46B8E
2 changed files with 12 additions and 1 deletions

View File

@ -625,6 +625,8 @@ in
]
++ optional (elem "virtualbox" cfg.videoDrivers) xorg.xrefresh;
environment.pathsToLink = [ "/share/X11" ];
xdg = {
autostart.enable = true;
menus.enable = true;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, ncurses, pcre }:
{ stdenv, fetchurl, ncurses, pcre, fetchpatch }:
let
version = "5.6";
@ -18,6 +18,15 @@ stdenv.mkDerivation {
sha256 = "1vik7s3q5hvazvgw4jm4b90qlk6zcry0s314xw1liarspkd721g3";
};
patches = [
(fetchpatch {
name = "search-xdg-data-dirs.patch";
url = https://github.com/zsh-users/zsh/commit/624219e0e4cbfdfb286e707bd2853f2d7b6a4a7d.patch;
sha256 = "0i0g7dc0px57vpklm1f4w20vyc92nv15y09r5clvib2kjkxjy2cf";
excludes = [ "ChangeLog" ];
})
];
buildInputs = [ ncurses pcre ];
configureFlags = [