aboutsummaryrefslogtreecommitdiffstats
rl'>space:mode:
authorKhem Raj <raj.khem@gmail.com>2017-03-06 13:14:15 -0800
committerMartin Jansa <Martin.Jansa@gmail.com>2017-04-06 13:00:09 +0200
commit10e27be99770a0f071ae4b8560de65e501f6bd09 (patch)
treec251de32731e6d06cc97bfbecb9d5bb28bd9e342
parentcdb428e7c49899675ee7b7a43f6cecdb5b4c2546 (diff)
downloadmeta-openembedded-contrib-10e27be99770a0f071ae4b8560de65e501f6bd09.tar.gz
gpm: Update to use git src uri
Additional patches are upstream to fix build with gcc6 and clang Add systemd unit file Create missing symlink for dev shared object Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat
-rw-r--r--meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch12
-rw-r--r--meta-oe/recipes-support/gpm/gpm-1.99.7/remove_nested_functions.patch326
-rw-r--r--meta-oe/recipes-support/gpm/gpm/gpm.service.in9
-rw-r--r--meta-oe/recipes-support/gpm/gpm/init (renamed from meta-oe/recipes-support/gpm/gpm-1.99.7/init)0
-rw-r--r--meta-oe/recipes-support/gpm/gpm/no-docs.patch (renamed from meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch)2
-rw-r--r--meta-oe/recipes-support/gpm/gpm/processcreds.patch (renamed from meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch)0
-rw-r--r--meta-oe/recipes-support/gpm/gpm_1.99.7.bb53
-rw-r--r--meta-oe/recipes-support/gpm/gpm_git.bb45
8 files changed, 55 insertions, 392 deletions
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 e43bdcb222..0000000000
--- 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 d2d6cb8a8c..0000000000
--- 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@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 0000000000..ee6c040fa6
--- /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
index 2dcf9ab049..2dcf9ab049 100644
--- a/meta-oe/recipes-support/gpm/gpm-1.99.7/init
+++ b/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
index f10217a942..3faef84ee2 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
index d647eca0ad..d647eca0ad 100644
--- a/meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch
+++ b/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 bbb8c28ac6..0000000000
--- 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] = "6071378b24494e36ca3ef6377606e7e565040413c86704753a162d2180af32ee"
-
-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 0000000000..69f12d9b89
--- /dev/null
+++ b/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -0,0 +1,45 @@
+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=18810669f13b87348459e611d31ab760"
+
+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
+ ln -s libgpm.so.2 ${D}${libdir}/libgpm.so
+}
+
+SYSTEMD_SERVICE_${PN} = "gpm.service"
+
+FILES_${PN} += "${datadir}/emacs"