summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/os-specific/linux/kmscon/default.nix4
-rw-r--r--pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch25
2 files changed, 29 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kmscon/default.nix b/pkgs/os-specific/linux/kmscon/default.nix
index 850907d4f8a7..bc7b254e19e9 100644
--- a/pkgs/os-specific/linux/kmscon/default.nix
+++ b/pkgs/os-specific/linux/kmscon/default.nix
@@ -33,6 +33,8 @@ stdenv.mkDerivation rec {
     libxslt
   ];
 
+  patches = [ ./kmscon-8-glibc-2.26.patch ];
+
   # FIXME: Remove as soon as kmscon > 8 comes along.
   postPatch = ''
     sed -i -e 's/libsystemd-daemon libsystemd-login/libsystemd/g' configure
@@ -45,6 +47,8 @@ stdenv.mkDerivation rec {
     "--with-renderers=bbulk,gltex,pixman"
   ];
 
+  enableParallelBuilding = true;
+
   meta = {
     description = "KMS/DRM based System Console";
     homepage = http://www.freedesktop.org/wiki/Software/kmscon/;
diff --git a/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch b/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch
new file mode 100644
index 000000000000..b70a750180e2
--- /dev/null
+++ b/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch
@@ -0,0 +1,25 @@
+diff --git a/src/pty.c b/src/pty.c
+index 3494104..1443f4a 100644
+--- a/src/pty.c
++++ b/src/pty.c
+@@ -299,7 +299,7 @@ static void setup_child(int master, struct winsize *ws)
+ 	if (ret)
+ 		log_warn("cannot reset blocked signals: %m");
+ 
+-	for (i = 1; i < SIGUNUSED; ++i)
++	for (i = 1; i < SIGSYS; ++i)
+ 		signal(i, SIG_DFL);
+ 
+ 	ret = grantpt(master);
+diff --git a/src/uterm_vt.c b/src/uterm_vt.c
+index af377f5..fbe9e76 100644
+--- a/src/uterm_vt.c
++++ b/src/uterm_vt.c
+@@ -40,6 +40,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/signalfd.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <termios.h>
+ #include <time.h>
+ #include <unistd.h>