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.k...@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.ja...@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.k...@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.k...@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@lists.openembedded.org > >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > > -- > > Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com > -- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel