From 6f89feaeddacab8ad30909dae968bba5b9a066e7 Mon Sep 17 00:00:00 2001 From: Azure Zanculmarktum Date: Tue, 20 Jul 2021 03:10:17 +0700 Subject: kbd: update search-paths.patch --- pkgs/os-specific/linux/kbd/default.nix | 6 +- pkgs/os-specific/linux/kbd/search-paths.patch | 85 +++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 pkgs/os-specific/linux/kbd/search-paths.patch (limited to 'pkgs/os-specific/linux') diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix index c7a59e59cab..23a523b15d7 100644 --- a/pkgs/os-specific/linux/kbd/default.nix +++ b/pkgs/os-specific/linux/kbd/default.nix @@ -29,6 +29,10 @@ stdenv.mkDerivation rec { "--disable-nls" ]; + patches = [ + ./search-paths.patch + ]; + postPatch = '' # Renaming keymaps with name clashes, because loadkeys just picks @@ -62,7 +66,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook pkg-config flex ]; passthru.tests = { - inherit (nixosTests) keymap kbd-setfont-decompress; + inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch; }; meta = with lib; { diff --git a/pkgs/os-specific/linux/kbd/search-paths.patch b/pkgs/os-specific/linux/kbd/search-paths.patch new file mode 100644 index 00000000000..3b337ca7cc2 --- /dev/null +++ b/pkgs/os-specific/linux/kbd/search-paths.patch @@ -0,0 +1,85 @@ +Add /etc/kbd to the list of directories to search for the console +fonts, screen mappings, Unicode maps, keytable files, etc. + +Without this patch, kbd will only look inside +/nix/store/-kbd-x.x.x/share. + +--- a/src/libkeymap/analyze.l ++++ b/src/libkeymap/analyze.l +@@ -109,6 +109,9 @@ static const char *const include_dirpath1[] = { + NULL + }; + static const char *const include_dirpath3[] = { ++ "/etc/kbd/" KEYMAPDIR "/include/", ++ "/etc/kbd/" KEYMAPDIR "/i386/include/", ++ "/etc/kbd/" KEYMAPDIR "/mac/include/", + DATADIR "/" KEYMAPDIR "/include/", + DATADIR "/" KEYMAPDIR "/i386/include/", + DATADIR "/" KEYMAPDIR "/mac/include/", +--- a/src/libkfont/context.c ++++ b/src/libkfont/context.c +@@ -13,6 +13,7 @@ + /* search for the map file in these directories (with trailing /) */ + static const char *const mapdirpath[] = { + "", ++ "/etc/kbd/" TRANSDIR "/", + DATADIR "/" TRANSDIR "/", + NULL + }; +@@ -28,6 +29,7 @@ static const char *const mapsuffixes[] = { + /* search for the font in these directories (with trailing /) */ + static const char *const fontdirpath[] = { + "", ++ "/etc/kbd/" FONTDIR "/", + DATADIR "/" FONTDIR "/", + NULL + }; +@@ -42,6 +44,7 @@ static char const *const fontsuffixes[] = { + + static const char *const unidirpath[] = { + "", ++ "/etc/kbd/" UNIMAPDIR "/", + DATADIR "/" UNIMAPDIR "/", + NULL + }; +@@ -55,6 +58,7 @@ static const char *const unisuffixes[] = { + /* hide partial fonts a bit - loading a single one is a bad idea */ + const char *const partfontdirpath[] = { + "", ++ "/etc/kbd/" FONTDIR "/" PARTIALDIR "/", + DATADIR "/" FONTDIR "/" PARTIALDIR "/", + NULL + }; +--- a/src/loadkeys.c ++++ b/src/loadkeys.c +@@ -27,6 +27,7 @@ + + static const char *const dirpath1[] = { + "", ++ "/etc/kbd/" KEYMAPDIR "/**", + DATADIR "/" KEYMAPDIR "/**", + KERNDIR "/", + NULL +--- a/src/resizecons.c ++++ b/src/resizecons.c +@@ -104,6 +104,7 @@ static void vga_set_verticaldisplayend_lowbyte(int); + + const char *const dirpath[] = { + "", ++ "/etc/kbd/" VIDEOMODEDIR "/", + DATADIR "/" VIDEOMODEDIR "/", + NULL + }; +--- a/src/setfont.c ++++ b/src/setfont.c +@@ -48,8 +48,8 @@ usage(void) + " -v Be verbose.\n" + " -C Indicate console device to be used.\n" + " -V Print version and exit.\n" +- "Files are loaded from the current directory or %s/*/.\n"), +- DATADIR); ++ "Files are loaded from the current directory or %s/*/ or %s/*/.\n"), ++ DATADIR, "/etc/kbd"); + exit(EX_USAGE); + } + -- cgit 1.4.1