Commit 76e44d18 authored by Natanael Copa's avatar Natanael Copa

testing/gpm: resurrect

get patches from https://github.com/telmich/gpm
parent d51e013b
# Contributor: Jeff Pohlmeyer <yetanothergeek@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gpm
pkgver=1.20.7
pkgrel=0
pkgdesc="A mouse server for the console"
url="http://www.nico.schottelius.org/software/gpm/"
arch="all"
license="GPL-2.0"
depends=""
depends_dev="$pkgname-libs"
makedepends="$depends_dev texinfo autoconf automake libtool bison linux-headers
ncurses-dev"
install=""
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-utils
$pkgname-openrc"
source="http://www.nico.schottelius.org/software/gpm/archives/$pkgname-$pkgver.tar.bz2
error-format.patch
fix-highly-illegal-return-of-in-as-char.patch
fix-signedness-issue.patch
install-shared-libs-with-+x-perms.patch
install-unversioned-solibrary.patch
musl-fixes.patch
constify-format-strings.patch
$pkgname.initd
$pkgname.confd
"
builddir="$srcdir"/$pkgname-$pkgver
build() {
cd "$builddir"
./autogen.sh
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var
make
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir"/$pkgname.initd \
"$pkgdir"/etc/init.d/$pkgname
install -m644 -D "$srcdir"/$pkgname.confd \
"$pkgdir"/etc/conf.d/$pkgname
}
utils() {
depends="$pkgname"
pkgdesc="Mouse utilities for console"
mkdir -p "$subpkgdir"/usr
mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
rmdir "$pkgdir"/usr/lib
}
sha512sums="51c1141ed502f8b6bc846485a8e315bafe3cf2b7c9d1ea8a710d9748ff2058f29c7ab5715fc1730a8437c613181d2050f37b134e9288c69ba8ff7fb0be7ec0d1 gpm-1.20.7.tar.bz2
b4a883cb3a5b3977e0ba3909d68335b5543ae3a7d9aaa704ec82693a474813996cc6822a086737da17c67e2c2b827e3d4a48ec27d9c82f3070f75c1126651896 error-format.patch
15c4f1459a28c931362a4f6cd22278b52c998b3b6f7164ee2e0dbd88fdace74b5e3599d3f3ac665c1df79a6ece14faac2b35f57d5d834a7714de2419954e6b5f fix-highly-illegal-return-of-in-as-char.patch
db7e02b50bb02726ca743d2c7bef7d49edb359bb1594cc18f371662471d425a32f5c9f99743f237046b5a3534d2c6257fdd5cb6d9e08824c6d84725b7ddf0272 fix-signedness-issue.patch
ec21b7029e0880b342bca5a70522e33d5cabbf77c44c1dd23b16d829d8fcc6cadcdf77b01724a91a6640916673f6d5ab91d18db4cd709ed77f9ce22dec723a13 install-shared-libs-with-+x-perms.patch
05bdf6a03870175dcee5414d6d2d434b6cd3e06686f0be22d70fc7f9759db8ccea0bf9ae900d95e6d2872845cd66ee0a794afc5ece78c6640be163cad2065c58 install-unversioned-solibrary.patch
45d3a20a8f9f00f78b21c10143e138add17d414e9b5ecc28d9efee9c2190450c79dca00b13a8247ee7753ff778b09bc88fe8c512366d5b1622981bb5d612f933 musl-fixes.patch
36a5059c6336010b504ec6fc53c2d3df0811b1f1249c0e04c13066db06667119377a21e58121aaa8d4b620be2a5c21da0b018f168e36a44f85802cc50c936ba5 constify-format-strings.patch
d268504bd0cf83706863a8af5c5719b0d192c34ae6a78ff0378521841eca242b39a6e6891080a5fc5512732f84e7439697ba92bfda3ecc1aaebd36b16e946477 gpm.initd
0e7c96f29222d33301fc9c5c8cf409b7dbe6cbb1e79d76444ae5724e8b793679d3ea597a8ad64187e85680799847632095e469445ae56f893616cb0235a29f3a gpm.confd"
From 7d21d7f469d90c2d55b23926c866bba635aa7e6f Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sun, 14 Feb 2016 18:05:49 -0500
Subject: [PATCH] report/oops: constify format strings
---
src/headers/gpm.h | 4 ++--
src/headers/message.h | 2 +-
src/lib/report-lib.c | 4 ++--
src/prog/mouse-test.c | 2 +-
src/report.c | 2 +-
5 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/headers/gpm.h b/src/headers/gpm.h
index 57dc618..9e96deb 100644
--- a/src/headers/gpm.h
+++ b/src/headers/gpm.h
@@ -280,10 +280,10 @@ int Gpm_GetSnapshot(Gpm_Event *ePtr);
char *Gpm_get_console( void );
int Gpm_x_high_y(int base, int pot_y);
int Gpm_cnt_digits(int number);
-void gpm_oops(int line, char *file, char *text, ... );
+void gpm_oops(int line, const char *file, const char *text, ... );
/* report.c / report-lib.c */
-void gpm_report(int line, char *file, int stat, char *text, ... );
+void gpm_report(int line, const char *file, int stat, const char *text, ... );
#ifdef __cplusplus
};
diff --git a/src/headers/message.h b/src/headers/message.h
index a0fed0e..25cad8c 100644
--- a/src/headers/message.h
+++ b/src/headers/message.h
@@ -226,7 +226,7 @@
/* #define GPM_MESS_ "" */
/* functions */
-void gpm_report(int line, char *file, int stat, char *text, ... );
+void gpm_report(int line, const char *file, int stat, const char *text, ... );
/* rest of wd.h */
#ifdef HAVE_SYSLOG_H
diff --git a/src/lib/report-lib.c b/src/lib/report-lib.c
index c0ae086..b565b77 100644
--- a/src/lib/report-lib.c
+++ b/src/lib/report-lib.c
@@ -24,9 +24,9 @@
#include "headers/message.h"
-void gpm_report(int line, char *file, int stat, char *text, ... )
+void gpm_report(int line, const char *file, int stat, const char *text, ... )
{
- char *string = NULL;
+ const char *string = NULL;
int log_level;
va_list ap;
diff --git a/src/prog/mouse-test.c b/src/prog/mouse-test.c
index 0bb1982..ab8d602 100644
--- a/src/prog/mouse-test.c
+++ b/src/prog/mouse-test.c
@@ -182,7 +182,7 @@ Gpm_Type *(*I_serial)(int fd, unsigned short flags, struct Gpm_Type *type,
/*-----------------------------------------------------------------------------
Place the description here.
-----------------------------------------------------------------------------*/
-int mousereopen(int oldfd, char *name, Gpm_Type *type)
+int mousereopen(int oldfd, const char *name, Gpm_Type *type)
{
int fd;
if (!type) type=mice+1; /* ms */
diff --git a/src/report.c b/src/report.c
index 6c7c2ee..286c1b7 100644
--- a/src/report.c
+++ b/src/report.c
@@ -69,7 +69,7 @@
*
*/
-void gpm_report(int line, char *file, int stat, char *text, ... )
+void gpm_report(int line, const char *file, int stat, const char *text, ...)
{
FILE *console = NULL;
va_list ap, ap3;
From 7ba518ff8b5e5c06d0a74b1fecf3b682f14c631c Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sun, 14 Feb 2016 18:07:46 -0500
Subject: [PATCH] report: avoid -Wformat-security warnings
Some functions warn when you pass a string to a printf style function
that is a dynamic buffer as its contents cannot be verified. Since we
don't want to support that here, just use %s.
---
src/lib/report-lib.c | 2 +-
src/prog/mouse-test.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lib/report-lib.c b/src/lib/report-lib.c
index b565b77..03230b4 100644
--- a/src/lib/report-lib.c
+++ b/src/lib/report-lib.c
@@ -47,7 +47,7 @@ void gpm_report(int line, const char *file, int stat, const char *text, ... )
log_level = LOG_CRIT; break;
}
#ifdef HAVE_VSYSLOG
- syslog(log_level, string);
+ syslog(log_level, "%s", string);
vsyslog(log_level, text, ap);
#else
fprintf(stderr,"%s[%s(%d)]:\n",string,file,line);
diff --git a/src/prog/mouse-test.c b/src/prog/mouse-test.c
index ab8d602..d7d1027 100644
--- a/src/prog/mouse-test.c
+++ b/src/prog/mouse-test.c
@@ -189,7 +189,7 @@ int mousereopen(int oldfd, const char *name, Gpm_Type *type)
close(oldfd);
usleep(100000);
fd=open(name,O_RDWR);
- if (fd < 0) gpm_report(GPM_PR_OOPS,name);
+ if (fd < 0) gpm_report(GPM_PR_OOPS, "%s", name);
(*I_serial)(fd,type->flags,type,1,&type->name); /* ms initialization */
return fd;
}
From 5648239f18ac041fe1a93b8b784bf3ca8e1d83bc Mon Sep 17 00:00:00 2001
From: nick black <nick.black@sprezzatech.com>
Date: Fri, 8 Feb 2013 05:52:13 -0500
Subject: [PATCH] fix highly illegal return of int as char *, and less worrying
set-but-not-used warning
---
src/twiddler.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/twiddler.c b/src/twiddler.c
index 1d2bd50..972a616 100644
--- a/src/twiddler.c
+++ b/src/twiddler.c
@@ -250,7 +250,6 @@ static inline int twiddler_use_item(char *item)
int twiddler_key(unsigned long message)
{
char **table = twiddler_get_table(message);
- char *val;
/*
* These two are needed to avoid transmitting single keys when typing
* chords. When the number of keys being held down decreases, data
@@ -269,7 +268,6 @@ int twiddler_key(unsigned long message)
if (!table) return 0;
message &= 0xff;
- val = table[message];
if ((message < last_message) && !marked) { /* ok, do it */
marked++; /* don't retransmit on release */
@@ -428,8 +426,11 @@ char *twiddler_rest_to_value(char *s)
buf[ibuf]='\0';
return strdup(buf);
}
- if (*ptr == '\\')
- return (char *)twiddler_escape_sequence(ptr+1, &len /* unused */);
+ if (*ptr == '\\') {
+ buf[ibuf++] = twiddler_escape_sequence(ptr+1, &len /* unused */);
+ buf[ibuf] = '\0';
+ return strdup(buf);
+ }
if (strlen(ptr)==1) return ((char *)((unsigned long)*ptr & 0xFF));
From 4337fd9fc2d2ea83654f2ca69245503730231ac3 Mon Sep 17 00:00:00 2001
From: iljavs <ivansprundel@ioactive.com>
Date: Mon, 27 Jun 2016 01:17:57 -0700
Subject: [PATCH] fix signedness issue
This commit fixes a signedness issue, where a negative vc coming from a malicious client could possibly cause memory corruption.
---
src/daemon/processconn.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/daemon/processconn.c b/src/daemon/processconn.c
index a5839a3..e92fa63 100644
--- a/src/daemon/processconn.c
+++ b/src/daemon/processconn.c
@@ -67,7 +67,8 @@ int processConn(int fd)
return -1;
}
- if((vc = request->vc) > MAX_VC) {
+ vc = request->vc;
+ if(vc > MAX_VC || vc < 0) {
gpm_report(GPM_PR_DEBUG, GPM_MESS_REQUEST_ON, vc, MAX_VC);
free(info);
close(newfd);
# gpm conf.d file for alpine linux
#
# Specify gpm mouse daemon options here.
#
#gpm_opts="-m /dev/input/mice -t imps2"
#!/sbin/openrc-run
pidfile=/var/run/gpm.pid
command=/usr/sbin/gpm
command_args=${gpm_opts:--m /dev/input/mice -t imps2}
depend() {
after localmount
use hotplug logger
}
From 01373f6fd5dd274116c8ec693245677dbf5390e6 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sun, 28 Oct 2012 07:25:40 -0400
Subject: [PATCH] install shared lib with +x perms
This is executable code, so it should have +x perms on the file.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
src/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.in b/src/Makefile.in
index d3b1dcd..6b60ad3 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -113,7 +113,7 @@ install: check
# 2.x goes along; unfortunately that means an additional
# headache in cases like this
if test "x@SHLIB@" != "x" ; then \
- $(INSTALL_DATA) -m 644 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \
+ $(INSTALL_DATA) -m 755 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \
cd $(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so.@abi_lev@ ; \
echo "WARNING: We installed a lib, you should now call ldconfig" ; \
echo "f.i.: ldconfig -n -l $(libdir)/libgpm.so.@abi_full@" ; \
From 06b00d53d8bd513ad5d262dc94a016c6fbf2d3aa Mon Sep 17 00:00:00 2001
From: Kamil Rytarowski <n54@gmx.com>
Date: Sat, 4 May 2013 01:30:17 +0200
Subject: [PATCH] Install unversioned solibrary
Unversioned solibraries are shipped with -devel packages in Linux
distros. Generate and install it for the consistency.
---
src/Makefile.in | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/Makefile.in b/src/Makefile.in
index 6b60ad3..7e9e2ef 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -79,7 +79,7 @@ prog/%: prog/%.o
# | $(SED) '\''s/\($*\)\.o\([ :]*\)/\1.o \1.lo\2/g'\'' > $(DEPDIR)/$@'
# Do it all!
-all: gpm lib/libgpm.so.@abi_lev@ @LIBGPM_A@ $(PROG)
+all: gpm lib/libgpm.so.@abi_lev@ lib/libgpm.so @LIBGPM_A@ $(PROG)
gpm: $(GOBJ)
$(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $(GOBJ) @LIBS@ $(LIBS) -lm
@@ -168,9 +168,8 @@ lib/libgpm.so.@abi_full@: $(PICS)
@LDFLAGS@ $(LDFLAGS) -o lib/libgpm.so.@abi_full@ $^ @LIBS@ @SHARED_LIBS@ $(LIBS)
lib/libgpm.so.@abi_lev@: lib/libgpm.so.@abi_full@
$(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so.@abi_lev@
-# unneeded, isn't it?
-#lib/libgpm.so: lib/libgpm.so.@abi_full@
-# $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so
+lib/libgpm.so: lib/libgpm.so.@abi_full@
+ $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so
include $(DEPFILE)
From d88fb1de5803c366ab62f7de9ee5d83207fb2afe Mon Sep 17 00:00:00 2001
From: Dima Krasner <dima@dimakrasner.com>
Date: Wed, 12 Nov 2014 23:06:46 +0200
Subject: [PATCH] Added musl support to libgpm and the daemon.
---
src/daemon/open_console.c | 1 +
src/prog/display-buttons.c | 1 +
src/prog/display-coords.c | 1 +
src/prog/gpm-root.y | 4 ++--
4 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/daemon/open_console.c b/src/daemon/open_console.c
index 98297c9..4d6c0af 100644
--- a/src/daemon/open_console.c
+++ b/src/daemon/open_console.c
@@ -21,6 +21,7 @@
#include <fcntl.h> /* open and co. */
#include <sys/stat.h> /* stat() */
+#include <sys/types.h> /* major() */
#include <sys/ioctl.h> /* ioctl */
/* Linux specific (to be outsourced in gpm2 */
diff --git a/src/prog/display-buttons.c b/src/prog/display-buttons.c
index de8e5b2..38d2f11 100644
--- a/src/prog/display-buttons.c
+++ b/src/prog/display-buttons.c
@@ -36,6 +36,7 @@
#include <stdio.h> /* printf() */
#include <time.h> /* time() */
#include <errno.h> /* errno */
+#include <sys/select.h> /* fd_set and FD_* */
#include <gpm.h> /* gpm information */
/* display resulting data */
diff --git a/src/prog/display-coords.c b/src/prog/display-coords.c
index 1fb810f..82afd12 100644
--- a/src/prog/display-coords.c
+++ b/src/prog/display-coords.c
@@ -38,6 +38,7 @@
#include <stdio.h> /* printf() */
#include <time.h> /* time() */
#include <errno.h> /* errno */
+#include <sys/select.h> /* fd_set and FD_* */
#include <gpm.h> /* gpm information */
/* display resulting data */
diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y
index 069d801..188ae35 100644
--- a/src/prog/gpm-root.y
+++ b/src/prog/gpm-root.y
@@ -1199,9 +1199,9 @@ int main(int argc, char **argv)
#if defined(__GLIBC__)
__sigemptyset(&childaction.sa_mask);
#else /* __GLIBC__ */
- childaction.sa_mask=0;
+ sigemptyset(&childaction.sa_mask);
#endif /* __GLIBC__ */
- childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */
+ childaction.sa_flags=0;
sigaction(SIGCHLD,&childaction,NULL);
/*....................................... Connect and get your buffer */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment