diff options
author | Nikolay Amiantov <ab@fmap.me> | 2016-07-01 03:51:01 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2016-07-03 03:23:05 +0300 |
commit | 853018124668d83bc17815da52d0e68b1a163eb7 (patch) | |
tree | dcbd72ae29a0187ec370bb12120b8a09af6a1724 /pkgs/os-specific/linux/kbd | |
parent | dcb950718abad3c3765712570fde3889d48ded35 (diff) |
kbd: add system-wise search paths for NixOS
Diffstat (limited to 'pkgs/os-specific/linux/kbd')
-rw-r--r-- | pkgs/os-specific/linux/kbd/default.nix | 17 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kbd/search-paths.patch | 77 |
2 files changed, 87 insertions, 7 deletions
diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix index fddaa84a82404..39da6d2a5579d 100644 --- a/pkgs/os-specific/linux/kbd/default.nix +++ b/pkgs/os-specific/linux/kbd/default.nix @@ -1,7 +1,8 @@ -{ stdenv, fetchurl, autoreconfHook, gzip, bzip2, pkgconfig, check, pam }: +{ stdenv, fetchurl, autoreconfHook, gzip, bzip2, pkgconfig, flex, check, pam }: stdenv.mkDerivation rec { - name = "kbd-2.0.3"; + name = "kbd-${version}"; + version = "2.0.3"; src = fetchurl { url = "mirror://kernel/linux/utils/kbd/${name}.tar.xz"; @@ -26,7 +27,7 @@ stdenv.mkDerivation rec { "--disable-nls" ]; - patches = [ ./console-fix.patch ]; + patches = [ ./console-fix.patch ./search-paths.patch ]; postPatch = '' @@ -49,13 +50,15 @@ stdenv.mkDerivation rec { ''} ''; - buildInputs = [ autoreconfHook pkgconfig check pam ]; + buildInputs = [ check pam ]; + nativeBuildInputs = [ autoreconfHook pkgconfig flex ]; - makeFlags = "setowner= "; + makeFlags = [ "setowner=" ]; - meta = { + meta = with stdenv.lib; { homepage = ftp://ftp.altlinux.org/pub/people/legion/kbd/; description = "Linux keyboard utilities and keyboard maps"; - platforms = stdenv.lib.platforms.linux; + platforms = platforms.linux; + licenses = licenses.gpl2Plus; }; } 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 0000000000000..66a56041481c7 --- /dev/null +++ b/pkgs/os-specific/linux/kbd/search-paths.patch @@ -0,0 +1,77 @@ +diff -ru3 kbd-2.0.3-old/src/libkeymap/analyze.l kbd-2.0.3/src/libkeymap/analyze.l +--- kbd-2.0.3-old/src/libkeymap/analyze.l 2016-07-03 02:31:28.258958092 +0300 ++++ kbd-2.0.3/src/libkeymap/analyze.l 2016-07-03 02:44:53.042592223 +0300 +@@ -99,6 +99,9 @@ + static const char *const include_dirpath0[] = { "", 0 }; + static const char *const include_dirpath1[] = { "", "../include/", "../../include/", 0 }; + 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/", 0 +diff -ru3 kbd-2.0.3-old/src/loadkeys.c kbd-2.0.3/src/loadkeys.c +--- kbd-2.0.3-old/src/loadkeys.c 2016-07-03 02:31:28.260958091 +0300 ++++ kbd-2.0.3/src/loadkeys.c 2016-07-03 02:34:34.123871103 +0300 +@@ -26,7 +26,7 @@ + #include "keymap.h" + + static const char *progname = NULL; +-static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 }; ++static const char *const dirpath1[] = { "", "/etc/kbd/" KEYMAPDIR "/**", DATADIR "/" KEYMAPDIR "/**", 0 }; + static const char *const suffixes[] = { "", ".kmap", ".map", 0 }; + + static void __attribute__ ((noreturn)) +diff -ru3 kbd-2.0.3-old/src/loadunimap.c kbd-2.0.3/src/loadunimap.c +--- kbd-2.0.3-old/src/loadunimap.c 2016-07-03 02:31:28.259958091 +0300 ++++ kbd-2.0.3/src/loadunimap.c 2016-07-03 02:33:06.803911971 +0300 +@@ -28,7 +28,7 @@ + extern char *progname; + extern int force; + +-static const char *const unidirpath[] = { "", DATADIR "/" UNIMAPDIR "/", 0 }; ++static const char *const unidirpath[] = { "", "/etc/kbd/" UNIMAPDIR "/", DATADIR "/" UNIMAPDIR "/", 0 }; + static const char *const unisuffixes[] = { "", ".uni", ".sfm", 0 }; + + #ifdef MAIN +diff -ru3 kbd-2.0.3-old/src/mapscrn.c kbd-2.0.3/src/mapscrn.c +--- kbd-2.0.3-old/src/mapscrn.c 2016-07-03 02:31:28.260958091 +0300 ++++ kbd-2.0.3/src/mapscrn.c 2016-07-03 02:33:21.119905270 +0300 +@@ -25,7 +25,7 @@ + static int ctoi (char *); + + /* search for the map file in these directories (with trailing /) */ +-static const char *const mapdirpath[] = { "", DATADIR "/" TRANSDIR "/", 0 }; ++static const char *const mapdirpath[] = { "", "/etc/kbd/" TRANSDIR "/", DATADIR "/" TRANSDIR "/", 0 }; + static const char *const mapsuffixes[] = { "", ".trans", "_to_uni.trans", ".acm", 0 }; + + #ifdef MAIN +diff -ru3 kbd-2.0.3-old/src/resizecons.c kbd-2.0.3/src/resizecons.c +--- kbd-2.0.3-old/src/resizecons.c 2016-07-03 02:31:28.260958091 +0300 ++++ kbd-2.0.3/src/resizecons.c 2016-07-03 02:33:32.253900060 +0300 +@@ -100,7 +100,7 @@ + static void vga_set_cursor(int, int); + static void vga_set_verticaldisplayend_lowbyte(int); + +-const char *const dirpath[] = { "", DATADIR "/" VIDEOMODEDIR "/", 0}; ++const char *const dirpath[] = { "", "/etc/kbd/" VIDEOMODEDIR "/", DATADIR "/" VIDEOMODEDIR "/", 0}; + const char *const suffixes[] = { "", 0 }; + + int +diff -ru3 kbd-2.0.3-old/src/setfont.c kbd-2.0.3/src/setfont.c +--- kbd-2.0.3-old/src/setfont.c 2016-07-03 02:31:28.260958091 +0300 ++++ kbd-2.0.3/src/setfont.c 2016-07-03 02:33:54.315889734 +0300 +@@ -51,10 +51,10 @@ + int debug = 0; + + /* search for the font in these directories (with trailing /) */ +-const char *const fontdirpath[] = { "", DATADIR "/" FONTDIR "/", 0 }; ++const char *const fontdirpath[] = { "", "/etc/kbd/" FONTDIR "/", DATADIR "/" FONTDIR "/", 0 }; + const char *const fontsuffixes[] = { "", ".psfu", ".psf", ".cp", ".fnt", 0 }; + /* hide partial fonts a bit - loading a single one is a bad idea */ +-const char *const partfontdirpath[] = { "", DATADIR "/" FONTDIR "/" PARTIALDIR "/", 0 }; ++const char *const partfontdirpath[] = { "", "/etc/kbd/" FONTDIR "/" PARTIALDIR "/", DATADIR "/" FONTDIR "/" PARTIALDIR "/", 0 }; + const char *const partfontsuffixes[] = { "", 0 }; + + static inline int |