gpm_1.20.1.bb: fix references to OPEN_MAX (Closes: #3762)
authorJeremy Laine <jeremy.laine@m4x.org>
Tue, 6 May 2008 14:15:28 +0000 (14:15 +0000)
committerJeremy Laine <jeremy.laine@m4x.org>
Tue, 6 May 2008 14:15:28 +0000 (14:15 +0000)
packages/gpm/gpm-1.20.1/gpm-OPEN_MAX.patch [new file with mode: 0644]
packages/gpm/gpm_1.20.1.bb

diff --git a/packages/gpm/gpm-1.20.1/gpm-OPEN_MAX.patch b/packages/gpm/gpm-1.20.1/gpm-OPEN_MAX.patch
new file mode 100644 (file)
index 0000000..6fa86e1
--- /dev/null
@@ -0,0 +1,46 @@
+Index: gpm-1.20.1/src/prog/gpm-root.y
+===================================================================
+--- gpm-1.20.1.orig/src/prog/gpm-root.y
++++ gpm-1.20.1/src/prog/gpm-root.y
+@@ -44,7 +44,6 @@
+ #include <sys/stat.h>       /* fstat() */
+ #include <sys/utsname.h>    /* uname() */
+ #include <termios.h>        /* winsize */
+-#include <linux/limits.h>   /* OPEN_MAX */
+ #include <linux/vt.h>       /* VT_ACTIVATE */
+ #include <linux/keyboard.h> /* K_SHIFT */
+ #include <utmp.h>         
+@@ -525,7 +524,9 @@ int f_bgcmd(int mode, DrawItem *self, in
+                   open("/dev/null",O_RDONLY); /* stdin  */
+                   open(consolename,O_WRONLY); /* stdout */
+                   dup(1);                     /* stderr */  
+-                  for (i=3;i<OPEN_MAX; i++) close(i);
++                  int open_max = sysconf(_SC_OPEN_MAX);
++               if (open_max == -1) open_max = 1024;
++               for (i=3;i<open_max; i++) close(i);
+                   execl("/bin/sh","sh","-c",self->arg,(char *)NULL);
+                   exit(1); /* shouldn't happen */
+                default: return 0;
+Index: gpm-1.20.1/src/special.c
+===================================================================
+--- gpm-1.20.1.orig/src/special.c
++++ gpm-1.20.1/src/special.c
+@@ -25,7 +25,6 @@
+ /* This file is compiled conditionally, see the Makefile */
+-#include <linux/limits.h> /* for OPEN_MAX */
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -155,7 +154,9 @@ int processSpecial(Gpm_Event *event)
+       open(GPM_NULL_DEV,O_RDONLY); /* stdin  */
+       open(option.consolename,O_WRONLY); /* stdout */
+       dup(1);                     /* stderr */
+-      for (i=3;i<OPEN_MAX; i++) close(i);
++      int open_max = sysconf(_SC_OPEN_MAX);
++      if (open_max == -1) open_max = 1024;
++      for (i=3;i<open_max; i++) close(i);
+       execl("/bin/sh","sh","-c",command,(char *)NULL);
+       exit(1); /* shouldn't happen */
+       
index c017caf..5b278b7 100644 (file)
@@ -5,12 +5,13 @@ SECTION = "console/utils"
 LICENSE = "GPL"
 DEPENDS = "ncurses"
 
-PR = "r2"
+PR = "r3"
 PARALLEL_MAKE = ""
 
 SRC_URI = "ftp://arcana.linux.it/pub/gpm/gpm-${PV}.tar.bz2 \
           file://configure.patch;patch=1 \
           file://no-docs.patch;patch=1 \
+          file://gpm-OPEN_MAX.patch;patch=1 \
           file://init"
 
 inherit autotools update-rc.d