[oe] [meta-oe][PATCH 01/43] gpm: Update to use git src uri

Martin Jansa martin.jansa at gmail.com
Wed Apr 5 17:41:08 UTC 2017


I've merged many changes from master-next today, only the ones for
meta-networking layer are left in master-next now.

Can you please resend remaining changes (rebased on master-next) and
integrate the fixes into them?

Thanks

On Wed, Apr 5, 2017 at 6:38 PM, Khem Raj <raj.khem at gmail.com> wrote:

> Thanks Martin for triaging it. The fix is pushed to kraj/master
>
> https://github.com/kraj/meta-openembedded/commit/
> 21b5a2ad436439bfddd8b1d30fcfab28d868d063
>
>
> On Mon, Apr 3, 2017 at 12:19 PM, Martin Jansa <martin.jansa at gmail.com>
> wrote:
> > On Fri, Mar 31, 2017 at 09:42:05AM -0700, Khem Raj wrote:
> >> Additional patches are upstream to fix build with gcc6 and clang
> >> Add systemd unit file
> >>
> >> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> >> ---
> >>  .../gpm/gpm-1.99.7/eglibc-2.17.patch               |  12 -
> >>  .../gpm/gpm-1.99.7/remove_nested_functions.patch   | 326
> ---------------------
> >>  meta-oe/recipes-support/gpm/gpm/gpm.service.in     |   9 +
> >>  .../recipes-support/gpm/{gpm-1.99.7 => gpm}/init   |   0
> >>  .../gpm/{gpm-1.99.7 => gpm}/no-docs.patch          |   2 +-
> >>  .../gpm/{gpm-1.99.7 => gpm}/processcreds.patch     |   0
> >>  meta-oe/recipes-support/gpm/gpm_1.99.7.bb          |  53 ----
> >>  meta-oe/recipes-support/gpm/gpm_git.bb             |  44 +++
> >>  8 files changed, 54 insertions(+), 392 deletions(-)
> >>  delete mode 100644 meta-oe/recipes-support/gpm/
> gpm-1.99.7/eglibc-2.17.patch
> >>  delete mode 100644 meta-oe/recipes-support/gpm/
> gpm-1.99.7/remove_nested_functions.patch
> >>  create mode 100644 meta-oe/recipes-support/gpm/gpm/gpm.service.in
> >>  rename meta-oe/recipes-support/gpm/{gpm-1.99.7 => gpm}/init (100%)
> >>  rename meta-oe/recipes-support/gpm/{gpm-1.99.7 => gpm}/no-docs.patch
> (93%)
> >>  rename meta-oe/recipes-support/gpm/{gpm-1.99.7 =>
> gpm}/processcreds.patch (100%)
> >>  delete mode 100644 meta-oe/recipes-support/gpm/gpm_1.99.7.bb
> >>  create mode 100644 meta-oe/recipes-support/gpm/gpm_git.bb
> >
> > This breaks links build, before this change links detected gpm and
> > enabled FB driver:
> >
> > configure:7756: result: yes
> > configure:7756: checking for gpm.h
> > configure:7756: result: yes
> > configure:7766: checking for Gpm_Open in -lgpm
> > configure:7791: i586-oe-linux-gcc  -m32 -march=i586
> --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/links/2.7-r0/recipe-sysroot
> -o conftest  -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-
> oe-linux/links/2.7-r0=/usr/src/debug/links/2.7-r0
> -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-
> oe-linux/links/2.7-r0/recipe-sysroot-native= -fdebug-prefix-map=/OE/build/
> oe-core/tmp-glibc/work/i586-oe-linux/links/2.7-r0/recipe-sysroot=
>  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed conftest.c -lgpm  -lm  >&5
> > configure:7791: $? = 0
> > configure:7800: result: yes
> > configure:7813: checking for Gpm_GetLibVersion
> > configure:7813: i586-oe-linux-gcc  -m32 -march=i586
> --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/links/2.7-r0/recipe-sysroot
> -o conftest  -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-
> oe-linux/links/2.7-r0=/usr/src/debug/links/2.7-r0
> -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-
> oe-linux/links/2.7-r0/recipe-sysroot-native= -fdebug-prefix-map=/OE/build/
> oe-core/tmp-glibc/work/i586-oe-linux/links/2.7-r0/recipe-sysroot=
>  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed conftest.c -lgpm -lm  >&5
> > configure:7813: $? = 0
> > configure:7813: result: yes
> >
> >
> > with this change:
> > configure:7756: checking for gpm.h
> > configure:7756: result: yes
> > configure:7766: checking for Gpm_Open in -lgpm
> > configure:7791: x86_64-oe-linux-gcc  -m64 -march=core2 -mtune=core2
> -msse3 -mfpmath=sse --sysroot=/home/jenkins/oe/
> world/shr-core/tmp-glibc/work/core2-64-oe-linux/links/2.7-r0/recipe-sysroot
> -o conftest  -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/home/jenkins/oe/world/shr-core/tmp-
> glibc/work/core2-64-oe-linux/links/2.7-r0=/usr/src/debug/links/2.7-r0
> -fdebug-prefix-map=/home/jenkins/oe/world/shr-core/tmp-
> glibc/work/core2-64-oe-linux/links/2.7-r0/recipe-sysroot-native=
> -fdebug-prefix-map=/home/jenkins/oe/world/shr-core/tmp-
> glibc/work/core2-64-oe-linux/links/2.7-r0/recipe-sysroot=   -Wl,-O1
> -Wl,--hash-style=gnu -Wl,--as-needed conftest.c -lgpm  -lm  >&5
> > /home/jenkins/oe/world/shr-core/tmp-glibc/work/core2-64-
> oe-linux/links/2.7-r0/recipe-sysroot-native/usr/bin/x86_64-
> oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/6.3.0/ld:
> error: cannot find -lgpm
> > /usr/src/debug/links/2.7-r0/build/conftest.c:117: error: undefined
> reference to 'Gpm_Open'
> > collect2: error: ld returned 1 exit status
> > configure:7791: $? = 1
> > configure: failed program was:
> > | /* confdefs.h */
> > | #define PACKAGE_NAME ""
> > | #define PACKAGE_TARNAME ""
> > | #define PACKAGE_VERSION ""
> > | #define PACKAGE_STRING ""
> > | #define PACKAGE_BUGREPORT ""
> > | #define PACKAGE_URL ""
> > | #define PACKAGE "links"
> > | #define VERSION "2.7"
> > | #define STDC_HEADERS 1
> > | #define HAVE_TYPEOF 1
> > | #define HAVE_LONG_LONG 1
> > ...
> > | #define HAVE_LIBM 1
> > | #define HAVE_GPM_H 1
> > | /* end confdefs.h.  */
> > |
> > | /* Override any GCC internal prototype to avoid an error.
> > |    Use char because int might match the return type of a GCC
> > |    builtin and then its argument prototype would still apply.  */
> > | #ifdef __cplusplus
> > | extern "C"
> > | #endif
> > | char Gpm_Open ();
> > | int
> > | main ()
> > | {
> > | return Gpm_Open ();
> > |   ;
> > |   return 0;
> > | }
> > configure:7800: result: no
> > configure:7813: checking for Gpm_GetLibVersion
> > configure:7813: x86_64-oe-linux-gcc  -m64 -march=core2 -mtune=core2
> -msse3 -mfpmath=sse --sysroot=/home/jenkins/oe/
> world/shr-core/tmp-glibc/work/core2-64-oe-linux/links/2.7-r0/recipe-sysroot
> -o conftest  -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/home/jenkins/oe/world/shr-core/tmp-
> glibc/work/core2-64-oe-linux/links/2.7-r0=/usr/src/debug/links/2.7-r0
> -fdebug-prefix-map=/home/jenkins/oe/world/shr-core/tmp-
> glibc/work/core2-64-oe-linux/links/2.7-r0/recipe-sysroot-native=
> -fdebug-prefix-map=/home/jenkins/oe/world/shr-core/tmp-
> glibc/work/core2-64-oe-linux/links/2.7-r0/recipe-sysroot=   -Wl,-O1
> -Wl,--hash-style=gnu -Wl,--as-needed conftest.c -lm  >&5
> > /usr/src/debug/links/2.7-r0/build/conftest.c:140: error: undefined
> reference to 'Gpm_GetLibVersion'
> > collect2: error: ld returned 1 exit status
> > configure:7813: $? = 1
> > configure: failed program was:
> > | /* confdefs.h */
> > | #define PACKAGE_NAME ""
> > | #define PACKAGE_TARNAME ""
> > ...
> > | #define HAVE_LIBM 1
> > | #define HAVE_GPM_H 1
> > | /* end confdefs.h.  */
> > | /* Define Gpm_GetLibVersion to an innocuous variant, in case
> <limits.h> declares Gpm_GetLibVersion.
> > |    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
> > | #define Gpm_GetLibVersion innocuous_Gpm_GetLibVersion
> > |
> > | /* System header to define __stub macros and hopefully few prototypes,
> > |     which can conflict with char Gpm_GetLibVersion (); below.
> > |     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
> > |     <limits.h> exists even on freestanding compilers.  */
> > |
> > | #ifdef __STDC__
> > | # include <limits.h>
> > | #else
> > | # include <assert.h>
> > | #endif
> > |
> > | #undef Gpm_GetLibVersion
> > |
> > | /* Override any GCC internal prototype to avoid an error.
> > |    Use char because int might match the return type of a GCC
> > |    builtin and then its argument prototype would still apply.  */
> > | #ifdef __cplusplus
> > | extern "C"
> > | #endif
> > | char Gpm_GetLibVersion ();
> > | /* The GNU C library defines this for functions which it implements
> > |     to always fail with ENOSYS.  Some functions are actually named
> > |     something starting with __ and the normal name is an alias.  */
> > | #if defined __stub_Gpm_GetLibVersion || defined
> __stub___Gpm_GetLibVersion
> > | choke me
> > | #endif
> > |
> > | int
> > | main ()
> > | {
> > | return Gpm_GetLibVersion ();
> > |   ;
> > |   return 0;
> > | }
> > configure:7813: result: no
> >
> >
> > The dependency is there and library as well:
> >
> > work/core2-64-oe-linux/links/2.7-r0$ find . -name libgpm\*
> > ./recipe-sysroot/usr/lib/libgpm.so.1
> > ./recipe-sysroot/usr/lib/libgpm.so.2
> > ./recipe-sysroot/usr/lib/libgpm.a
> > ./recipe-sysroot/usr/lib/libgpm.so.2.1.0
> >
> > but libgpm.so.1 link is broken:
> >
> > work/core2-64-oe-linux/links/2.7-r0$ ls -lah ./recipe-sysroot/usr/lib/
> libgpm*
> > -rw-r--r-- 2 jenkins Jenkins 103K Apr  3 08:50 ./recipe-sysroot/usr/lib/
> libgpm.a
> > lrwxrwxrwx 1 jenkins Jenkins   16 Apr  3 08:56 ./recipe-sysroot/usr/lib/libgpm.so.1
> -> libgpm.so.1.19.0
> > lrwxrwxrwx 1 jenkins Jenkins   15 Apr  3 08:56 ./recipe-sysroot/usr/lib/libgpm.so.2
> -> libgpm.so.2.1.0
> > -rw-r--r-- 2 jenkins Jenkins  23K Apr  3 08:50 ./recipe-sysroot/usr/lib/
> libgpm.so.2.1.0
> >
> > with this change there is only the 2.1.0 version:
> > lrwxrwxrwx 1 jenkins Jenkins  15 Apr  3 09:12 ./recipe-sysroot/usr/lib/libgpm.so.2
> -> libgpm.so.2.1.0
> > -rwxr-xr-x 3 jenkins Jenkins 23K Apr  2 12:59 ./recipe-sysroot/usr/lib/
> libgpm.so.2.1.0
> >
> >
> >> diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch
> b/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch
> >> deleted file mode 100644
> >> index e43bdcb22..000000000
> >> --- a/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch
> >> +++ /dev/null
> >> @@ -1,12 +0,0 @@
> >> -Upstream-Status: pending
> >> -
> >> ---- gpm-1.99.7.orig/src/daemon/open_console.c        2008-07-24
> 12:33:05.000000000 +0200
> >> -+++ gpm-1.99.7/src/daemon/open_console.c     2013-01-10
> 12:39:47.975461947 +0100
> >> -@@ -23,6 +23,7 @@
> >> - #include <fcntl.h>              /* open and co.  */
> >> - #include <sys/stat.h>           /* stat() */
> >> - #include <sys/ioctl.h>          /* ioctl() */
> >> -+#include <sys/types.h>          /* major() */
> >> -
> >> - /* Linux specific (to be outsourced in gpm2 */
> >> - #include <linux/serial.h>       /* for serial console check */
> >> diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/remove_nested_functions.patch
> b/meta-oe/recipes-support/gpm/gpm-1.99.7/remove_nested_functions.patch
> >> deleted file mode 100644
> >> index d2d6cb8a8..000000000
> >> --- a/meta-oe/recipes-support/gpm/gpm-1.99.7/remove_nested_
> functions.patch
> >> +++ /dev/null
> >> @@ -1,326 +0,0 @@
> >> -Remove nested functions, they are not available in all compilers
> >> -e.g. clang will not support them.
> >> -
> >> -Upstream-Status: Pending
> >> -Signed-off-by: Khem Raj <raj.khem at gmail.com>
> >> -
> >> -Index: gpm-1.99.7/src/drivers/summa/i.c
> >> -===================================================================
> >> ---- gpm-1.99.7.orig/src/drivers/summa/i.c
> >> -+++ gpm-1.99.7/src/drivers/summa/i.c
> >> -@@ -36,6 +36,28 @@ extern int summamaxy;
> >> -
> >> - extern signed char summaid;
> >> -
> >> -+static void resetsumma(int fd)
> >> -+{
> >> -+   write(fd, 0, 1);          /* Reset */
> >> -+   usleep(400000);           /* wait */
> >> -+}
> >> -+
> >> -+static int waitsumma(int fd)
> >> -+{
> >> -+   struct timeval timeout;
> >> -+
> >> -+   fd_set readfds;
> >> -+
> >> -+   int err;
> >> -+
> >> -+   FD_ZERO(&readfds);
> >> -+   FD_SET(fd, &readfds);
> >> -+   timeout.tv_sec = 0;
> >> -+   timeout.tv_usec = 200000;
> >> -+   err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout);
> >> -+   return (err);
> >> -+}
> >> -+
> >> - Gpm_Type *I_summa(int fd, unsigned short flags, struct Gpm_Type
> *type, int argc,
> >> -                   char **argv)
> >> - {
> >> -@@ -43,24 +65,6 @@ Gpm_Type *I_summa(int fd, unsigned short
> >> -    flags = argc = 0;            /* FIXME: 1.99.13 */
> >> -    argv = NULL;
> >> -
> >> --   void resetsumma() {
> >> --      write(fd, 0, 1);          /* Reset */
> >> --      usleep(400000);           /* wait */
> >> --   }
> >> --   int waitsumma() {
> >> --      struct timeval timeout;
> >> --
> >> --      fd_set readfds;
> >> --
> >> --      int err;
> >> --
> >> --      FD_ZERO(&readfds);
> >> --      FD_SET(fd, &readfds);
> >> --      timeout.tv_sec = 0;
> >> --      timeout.tv_usec = 200000;
> >> --      err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout);
> >> --      return (err);
> >> --   }
> >> -    int err;
> >> -
> >> -    char buffer[255];
> >> -@@ -91,7 +95,7 @@ Gpm_Type *I_summa(int fd, unsigned short
> >> -     */
> >> -    setspeed(fd, 1200, 9600, 1,
> >> -             B9600 | CS8 | CREAD | CLOCAL | HUPCL | PARENB | PARODD);
> >> --   resetsumma();
> >> -+   resetsumma(fd);
> >> -
> >> -    write(fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE));
> >> -
> >> -@@ -103,7 +107,7 @@ Gpm_Type *I_summa(int fd, unsigned short
> >> -        * read the Summa Firm-ID
> >> -        */
> >> -       write(fd, SS_FIRMID, strlen(SS_FIRMID));
> >> --      err = waitsumma();
> >> -+      err = waitsumma(fd);
> >> -       if(!((err == -1) || (!err))) {
> >> -          summaid = 10;          /* Original Summagraphics */
> >> -          read(fd, buffer, 255); /* Read Firm-ID */
> >> -@@ -111,14 +115,14 @@ Gpm_Type *I_summa(int fd, unsigned short
> >> -    }
> >> -
> >> -    if(summaid < 0) {            /* Genius-test */
> >> --      resetsumma();
> >> -+      resetsumma(fd);
> >> -       write(fd, GEN_MMSERIES, 1);
> >> -       write(fd, &GEN_MODELL, 1);        /* Read modell */
> >> --      err = waitsumma();
> >> -+      err = waitsumma(fd);
> >> -       if(!((err == -1) || (!err))) {    /* read Genius-ID */
> >> --         err = waitsumma();
> >> -+         err = waitsumma(fd);
> >> -          if(!((err == -1) || (!err))) {
> >> --            err = waitsumma();
> >> -+            err = waitsumma(fd);
> >> -             if(!((err == -1) || (!err))) {
> >> -                read(fd, &config, 1);
> >> -                summaid = (config[0] & 224) >> 5;        /* genius
> tablet-id
> >> -@@ -135,14 +139,14 @@ Gpm_Type *I_summa(int fd, unsigned short
> >> -     * unknown tablet ?
> >> -     */
> >> -    if((summaid < 0) || (summaid == 11)) {
> >> --      resetsumma();
> >> -+      resetsumma(fd);
> >> -       write(fd, SS_BINARY_FMT SS_PROMPT_MODE, 3);
> >> -    }
> >> -
> >> -    /*
> >> -     * read tablet size
> >> -     */
> >> --   err = waitsumma();
> >> -+   err = waitsumma(fd);
> >> -    if(!((err == -1) || (!err)))
> >> -       read(fd, buffer, sizeof(buffer));
> >> -    write(fd, SS_READCONFIG, 1);
> >> -Index: gpm-1.99.7/src/drivers/wacom/i.c
> >> -===================================================================
> >> ---- gpm-1.99.7.orig/src/drivers/wacom/i.c
> >> -+++ gpm-1.99.7/src/drivers/wacom/i.c
> >> -@@ -30,10 +30,6 @@
> >> - #include "message.h"            /* gpm_report */
> >> - #include "wacom.h"              /* wacom */
> >> -
> >> --Gpm_Type *I_wacom(int fd, unsigned short flags, struct Gpm_Type
> *type, int argc,
> >> --                  char **argv)
> >> --{
> >> --
> >> - /* wacom graphire tablet */
> >> - #define UD_RESETBAUD     "\r$"  /* reset baud rate to default (wacom
> V) */
> >> -    /*
> >> -@@ -45,83 +41,91 @@ Gpm_Type *I_wacom(int fd, unsigned short
> >> - #define UD_COORD         "~C\r" /* Request max coordinates */
> >> - #define UD_STOP          "\nSP\r"       /* stop sending coordinates */
> >> -
> >> --   flags = 0;                   /* FIXME: 1.99.13 */
> >> -
> >> --   void reset_wacom() {
> >> --      /*
> >> --       * Init Wacom communication; this is modified from xf86Wacom.so
> module
> >> --       */
> >> --      /*
> >> --       * Set speed to 19200
> >> --       */
> >> --      setspeed(fd, 1200, 19200, 0, B19200 | CS8 | CREAD | CLOCAL |
> HUPCL);
> >> --      /*
> >> --       * Send Reset Baudrate Command
> >> --       */
> >> --      write(fd, UD_RESETBAUD, strlen(UD_RESETBAUD));
> >> --      usleep(250000);
> >> --      /*
> >> --       * Send Reset Command
> >> --       */
> >> --      write(fd, UD_RESET, strlen(UD_RESET));
> >> --      usleep(75000);
> >> --      /*
> >> --       * Set speed to 9600bps
> >> --       */
> >> --      setspeed(fd, 1200, 9600, 0, B9600 | CS8 | CREAD | CLOCAL |
> HUPCL);
> >> --      /*
> >> --       * Send Reset Command
> >> --       */
> >> --      write(fd, UD_RESET, strlen(UD_RESET));
> >> --      usleep(250000);
> >> --      write(fd, UD_STOP, strlen(UD_STOP));
> >> --      usleep(100000);
> >> --   }
> >> -+static void reset_wacom(int fd)
> >> -+{
> >> -+   /*
> >> -+    * Init Wacom communication; this is modified from xf86Wacom.so
> module
> >> -+    */
> >> -+   /*
> >> -+    * Set speed to 19200
> >> -+    */
> >> -+   setspeed(fd, 1200, 19200, 0, B19200 | CS8 | CREAD | CLOCAL |
> HUPCL);
> >> -+   /*
> >> -+    * Send Reset Baudrate Command
> >> -+    */
> >> -+   write(fd, UD_RESETBAUD, strlen(UD_RESETBAUD));
> >> -+   usleep(250000);
> >> -+   /*
> >> -+    * Send Reset Command
> >> -+    */
> >> -+   write(fd, UD_RESET, strlen(UD_RESET));
> >> -+   usleep(75000);
> >> -+   /*
> >> -+    * Set speed to 9600bps
> >> -+    */
> >> -+   setspeed(fd, 1200, 9600, 0, B9600 | CS8 | CREAD | CLOCAL | HUPCL);
> >> -+   /*
> >> -+    * Send Reset Command
> >> -+    */
> >> -+   write(fd, UD_RESET, strlen(UD_RESET));
> >> -+   usleep(250000);
> >> -+   write(fd, UD_STOP, strlen(UD_STOP));
> >> -+   usleep(100000);
> >> -+}
> >> -
> >> --   int wait_wacom() {
> >> --      /*
> >> --       *  Wait up to 200 ms for Data from Tablet.
> >> --       *  Do not read that data.
> >> --       *  Give back 0 on timeout condition, -1 on error and 1 for
> DataPresent
> >> --       */
> >> --      struct timeval timeout;
> >> --
> >> --      fd_set readfds;
> >> --
> >> --      int err;
> >> --
> >> --      FD_ZERO(&readfds);
> >> --      FD_SET(fd, &readfds);
> >> --      timeout.tv_sec = 0;
> >> --      timeout.tv_usec = 200000;
> >> --      err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout);
> >> --      return ((err > 0) ? 1 : err);
> >> --   }
> >> -+static int wait_wacom(int fd)
> >> -+{
> >> -+   /*
> >> -+    *  Wait up to 200 ms for Data from Tablet.
> >> -+    *  Do not read that data.
> >> -+    *  Give back 0 on timeout condition, -1 on error and 1 for
> DataPresent
> >> -+    */
> >> -+   struct timeval timeout;
> >> -
> >> --   char buffer[50], *p;
> >> -+   fd_set readfds;
> >> -
> >> --   int RequestData(char *cmd) {
> >> --      int err;
> >> -+   int err;
> >> -
> >> --      /*
> >> --       * Send cmd if not null, and get back answer from tablet.
> >> --       * Get Data to buffer until full or timeout.
> >> --       * Give back 0 for timeout and !0 for buffer full
> >> --       */
> >> --      if(cmd)
> >> --         write(fd, cmd, strlen(cmd));
> >> --      memset(buffer, 0, sizeof(buffer));
> >> --      p = buffer;
> >> --      err = wait_wacom();
> >> --      while(err != -1 && err && (p - buffer) < (int) (sizeof(buffer)
> - 1)) {
> >> --         p += read(fd, p, (sizeof(buffer) - 1) - (p - buffer));
> >> --         err = wait_wacom();
> >> --      }
> >> --      /*
> >> --       * return 1 for buffer full
> >> --       */
> >> --      return ((strlen(buffer) >= (sizeof(buffer) - 1)) ? !0 : 0);
> >> -+   FD_ZERO(&readfds);
> >> -+   FD_SET(fd, &readfds);
> >> -+   timeout.tv_sec = 0;
> >> -+   timeout.tv_usec = 200000;
> >> -+   err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout);
> >> -+   return ((err > 0) ? 1 : err);
> >> -+}
> >> -+
> >> -+static int RequestData(int fd, char *cmd, char *buffer)
> >> -+{
> >> -+   int err;
> >> -+   char *p;
> >> -+   /*
> >> -+    * Send cmd if not null, and get back answer from tablet.
> >> -+    * Get Data to buffer until full or timeout.
> >> -+    * Give back 0 for timeout and !0 for buffer full
> >> -+    */
> >> -+   if(cmd)
> >> -+      write(fd, cmd, strlen(cmd));
> >> -+   memset(buffer, 0, sizeof(buffer));
> >> -+   p = buffer;
> >> -+   err = wait_wacom(fd);
> >> -+   while(err != -1 && err && (p - buffer) < (int) (sizeof(buffer) -
> 1)) {
> >> -+      p += read(fd, p, (sizeof(buffer) - 1) - (p - buffer));
> >> -+      err = wait_wacom(fd);
> >> -    }
> >> -+   /*
> >> -+    * return 1 for buffer full
> >> -+    */
> >> -+   return ((strlen(buffer) >= (sizeof(buffer) - 1)) ? !0 : 0);
> >> -+}
> >> -+
> >> -+Gpm_Type *I_wacom(int fd, unsigned short flags, struct Gpm_Type
> *type, int argc,
> >> -+                  char **argv)
> >> -+{
> >> -+
> >> -+   flags = 0;                   /* FIXME: 1.99.13 */
> >> -+
> >> -+   char buffer[50];
> >> -
> >> -    /*
> >> -     * We do both modes, relative and absolute, with the same function.
> >> -@@ -143,17 +147,17 @@ Gpm_Type *I_wacom(int fd, unsigned short
> >> -    };
> >> -    parse_argv(optioninfo, argc, argv);
> >> -    type->absolute = WacomAbsoluteWanted;
> >> --   reset_wacom();
> >> -+   reset_wacom(fd);
> >> -
> >> -    /*
> >> -     * "Flush" input queque
> >> -     */
> >> --   while(RequestData(NULL)) ;
> >> -+   while(RequestData(fd, NULL, buffer)) ;
> >> -
> >> -    /*
> >> -     * read WACOM-ID
> >> -     */
> >> --   RequestData(UD_FIRMID);
> >> -+   RequestData(fd, UD_FIRMID, buffer);
> >> -
> >> -    /*
> >> -     * Search for matching modell
> >> -@@ -180,7 +184,7 @@ Gpm_Type *I_wacom(int fd, unsigned short
> >> -     * read Wacom max size
> >> -     */
> >> -    if(WacomModell != (-1) && (!wcmodell[WacomModell].maxX)) {
> >> --      RequestData(UD_COORD);
> >> -+      RequestData(fd, UD_COORD, buffer);
> >> -       sscanf(buffer + 2, "%d,%d", &wmaxx, &wmaxy);
> >> -       wmaxx = (wmaxx - wcmodell[WacomModell].border);
> >> -       wmaxy = (wmaxy - wcmodell[WacomModell].border);
> >> diff --git a/meta-oe/recipes-support/gpm/gpm/gpm.service.in
> b/meta-oe/recipes-support/gpm/gpm/gpm.service.in
> >> new file mode 100644
> >> index 000000000..ee6c040fa
> >> --- /dev/null
> >> +++ b/meta-oe/recipes-support/gpm/gpm/gpm.service.in
> >> @@ -0,0 +1,9 @@
> >> +[Unit]
> >> +Description=Virtual console mouse server
> >> +
> >> +[Service]
> >> +Type=forking
> >> +ExecStart=@bindir@/gpm -m /dev/input/mice -t imps2
> >> +
> >> +[Install]
> >> +WantedBy=multi-user.target
> >> diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/init
> b/meta-oe/recipes-support/gpm/gpm/init
> >> similarity index 100%
> >> rename from meta-oe/recipes-support/gpm/gpm-1.99.7/init
> >> rename to meta-oe/recipes-support/gpm/gpm/init
> >> diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch
> b/meta-oe/recipes-support/gpm/gpm/no-docs.patch
> >> similarity index 93%
> >> rename from meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch
> >> rename to meta-oe/recipes-support/gpm/gpm/no-docs.patch
> >> index f10217a94..3faef84ee 100644
> >> --- a/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch
> >> +++ b/meta-oe/recipes-support/gpm/gpm/no-docs.patch
> >> @@ -11,7 +11,7 @@ Index: gpm-1.99.7/Makefile.in
> >>   # user-overridable flags, but it's also all the implicit rule looks
> at.
> >>   # missing ?
> >>
> >> --SUBDIRS = src doc contrib gpm2
> >> +-SUBDIRS = src doc contrib
> >>  +SUBDIRS = src
> >>
> >>
> >> diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch
> b/meta-oe/recipes-support/gpm/gpm/processcreds.patch
> >> similarity index 100%
> >> rename from meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch
> >> rename to meta-oe/recipes-support/gpm/gpm/processcreds.patch
> >> diff --git a/meta-oe/recipes-support/gpm/gpm_1.99.7.bb
> b/meta-oe/recipes-support/gpm/gpm_1.99.7.bb
> >> deleted file mode 100644
> >> index bbb8c28ac..000000000
> >> --- a/meta-oe/recipes-support/gpm/gpm_1.99.7.bb
> >> +++ /dev/null
> >> @@ -1,53 +0,0 @@
> >> -DESCRIPTION = "GPM (General Purpose Mouse) is a mouse server \
> >> -for the console and xterm, with sample clients included \
> >> -(emacs, etc)."
> >> -SECTION = "console/utils"
> >> -LICENSE = "GPLv2+"
> >> -LIC_FILES_CHKSUM = "file://gpm2/core/main.c;endline=19;md5=
> 66d3c205c4e7ee5704b2ee351dfed72f"
> >> -
> >> -PR = "r2"
> >> -
> >> -DEPENDS = "ncurses"
> >> -
> >> -SRC_URI = "ftp://arcana.linux.it/pub/gpm/gpm-${PV}.tar.bz2 \
> >> -           file://no-docs.patch \
> >> -           file://processcreds.patch \
> >> -           file://eglibc-2.17.patch \
> >> -           file://remove_nested_functions.patch \
> >> -           file://init"
> >> -
> >> -inherit autotools-brokensep update-rc.d
> >> -
> >> -INITSCRIPT_NAME = "gpm"
> >> -INITSCRIPT_PARAMS = "defaults"
> >> -
> >> -#export LIBS = "-lm"
> >> -
> >> -# all fields are /* FIXME: gpm 1.99.13 */
> >> -# gpm-1.99.7/src/lib/libhigh.c:171:43: error: parameter 'clientdata'
> set but not used [-Werror=unused-but-set-parameter]
> >> -# gpm-1.99.7/src/lib/report-lib.c:28:21: error: parameter 'line' set
> but not used [-Werror=unused-but-set-parameter]
> >> -# gpm-1.99.7/src/lib/report-lib.c:28:33: error: parameter 'file' set
> but not used [-Werror=unused-but-set-parameter]
> >> -# gpm-1.99.7/src/drivers/empty/i.c:26:23: error: parameter 'fd' set
> but not used [-Werror=unused-but-set-parameter]
> >> -# gpm-1.99.7/src/drivers/empty/i.c:26:42: error: parameter 'flags'
> set but not used [-Werror=unused-but-set-parameter]
> >> -# gpm-1.99.7/src/drivers/etouch/i.c:34:43: error: parameter 'flags'
> set but not used [-Werror=unused-but-set-parameter]
> >> -# gpm-1.99.7/src/drivers/msc/r.c:32:12: error: variable 'dy' set but
> not used [-Werror=unused-but-set-variable]
> >> -# gpm-1.99.7/src/drivers/msc/r.c:32:8: error: variable 'dx' set but
> not used [-Werror=unused-but-set-variable]
> >> -# cc1: all warnings being treated as errors
> >> -CFLAGS += "-Wno-extra -Wno-error=unused-but-set-parameter
> -Wno-error=unused-but-set-variable"
> >> -
> >> -# twiddler is WIP in 1.99.7 and probably not worth fixing (a lot of
> changes in gpm-2-dev after 1.99.7
> >> -# gpm-1.99.7/src/drivers/twid/twiddler.c:503:14: error: cast to
> pointer from integer of different size [-Werror=int-to-pointer-cast]
> >> -# /gpm-1.99.7/src/mice.c:221:5: error: (near initialization for
> 'mice[32].init') [-Werror]
> >> -CFLAGS += "-Wno-error=int-to-pointer-cast -Wno-error"
> >> -
> >> -do_install () {
> >> -    oe_runmake 'DESTDIR=${D}' install
> >> -    install -m 0644 src/headers/gpm.h ${D}${includedir}
> >> -    install -d ${D}/${sysconfdir}/init.d
> >> -    install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/gpm
> >> -    cd ${D}${libdir} && ln -sf libgpm.so.1.19.0 libgpm.so.1
> >> -}
> >> -SRC_URI[md5sum] = "9fdddf5f53cb11d40bb2bb671d3ac544"
> >> -SRC_URI[sha256sum] = "6071378b24494e36ca3ef6377606e7
> e565040413c86704753a162d2180af32ee"
> >> -
> >> -FILES_${PN} += "${datadir}/emacs"
> >> diff --git a/meta-oe/recipes-support/gpm/gpm_git.bb
> b/meta-oe/recipes-support/gpm/gpm_git.bb
> >> new file mode 100644
> >> index 000000000..4c0e9434d
> >> --- /dev/null
> >> +++ b/meta-oe/recipes-support/gpm/gpm_git.bb
> >> @@ -0,0 +1,44 @@
> >> +DESCRIPTION = "GPM (General Purpose Mouse) is a mouse server \
> >> +for the console and xterm, with sample clients included \
> >> +(emacs, etc)."
> >> +SECTION = "console/utils"
> >> +LICENSE = "GPLv2+"
> >> +LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab7
> 60"
> >> +
> >> +PV = "1.99.7+git${SRCREV}"
> >> +PR = "r2"
> >> +SRCREV = "1fd19417b8a4dd9945347e98dfa97e4cfd798d77"
> >> +
> >> +DEPENDS = "ncurses"
> >> +
> >> +SRC_URI = "git://github.com/telmich/gpm;protocol=git \
> >> +           file://no-docs.patch \
> >> +           file://processcreds.patch \
> >> +           file://gpm.service.in \
> >> +           file://init"
> >> +
> >> +S = "${WORKDIR}/git"
> >> +
> >> +inherit autotools-brokensep update-rc.d systemd
> >> +
> >> +INITSCRIPT_NAME = "gpm"
> >> +INITSCRIPT_PARAMS = "defaults"
> >> +
> >> +do_configure_prepend() {
> >> +    (cd ${S};./autogen.sh;cd -)
> >> +}
> >> +
> >> +do_install_append () {
> >> +    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true',
> 'false', d)}; then
> >> +        install -d ${D}${systemd_system_unitdir}
> >> +        sed 's:@bindir@:${bindir}:' < ${WORKDIR}/gpm.service.in
> >${D}${systemd_system_unitdir}/gpm.service
> >> +    fi
> >> +    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true',
> 'false', d)}; then
> >> +        install -D -m 0755 ${WORKDIR}/init
> ${D}/${sysconfdir}/init.d/gpm
> >> +    fi
> >> +    install -D -m 0644 ${S}/src/headers/gpm.h ${D}${includedir}/gpm.h
> >> +}
> >> +
> >> +SYSTEMD_SERVICE_${PN} = "gpm.service"
> >> +
> >> +FILES_${PN} += "${datadir}/emacs"
> >> --
> >> 2.12.1
> >>
> >> --
> >> _______________________________________________
> >> Openembedded-devel mailing list
> >> Openembedded-devel at lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >
> > --
> > Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
>



More information about the Openembedded-devel mailing list