Package init
This commit is contained in:
commit
cfba158aef
47
fix-highly-illegal-return-of-int-as-char-and-less-wo.patch
Normal file
47
fix-highly-illegal-return-of-int-as-char-and-less-wo.patch
Normal file
@ -0,0 +1,47 @@
|
||||
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 07/21] 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));
|
||||
|
||||
--
|
||||
2.19.1
|
||||
|
||||
27
fix-signedness-issue.patch
Normal file
27
fix-signedness-issue.patch
Normal file
@ -0,0 +1,27 @@
|
||||
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 21/21] 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);
|
||||
--
|
||||
2.19.1
|
||||
|
||||
17
gpm-1.20.5-close-fds.patch
Normal file
17
gpm-1.20.5-close-fds.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff -up gpm-1.20.5/src/daemon/startup.c.close-fds gpm-1.20.5/src/daemon/startup.c
|
||||
--- gpm-1.20.5/src/daemon/startup.c.close-fds 2008-06-13 10:08:19.000000000 +0200
|
||||
+++ gpm-1.20.5/src/daemon/startup.c 2008-12-02 10:11:12.000000000 +0100
|
||||
@@ -135,6 +135,13 @@ void startup(int argc, char **argv)
|
||||
check_uniqueness();
|
||||
gpm_report(GPM_PR_INFO,GPM_MESS_STARTED);
|
||||
|
||||
+ // close extra fds
|
||||
+ if (option.run_status == GPM_RUN_STARTUP ) {
|
||||
+ close(0);
|
||||
+ close(1);
|
||||
+ close(2);
|
||||
+ }
|
||||
+
|
||||
//return mouse_table[1].fd; /* the second is handled in the main() */
|
||||
|
||||
/****************** OLD CODE from gpn.c END ***********************/
|
||||
12
gpm-1.20.6-missing-header-dir-in-make-depend.patch
Normal file
12
gpm-1.20.6-missing-header-dir-in-make-depend.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Naur gpm-1.20.6.orig/src/Makefile.in gpm-1.20.6/src/Makefile.in
|
||||
--- gpm-1.20.6.orig/src/Makefile.in 2009-02-09 10:58:53.000000000 +0100
|
||||
+++ gpm-1.20.6/src/Makefile.in 2013-03-19 14:33:58.092659991 +0100
|
||||
@@ -96,7 +96,7 @@
|
||||
|
||||
# create dependencies
|
||||
for DEPS in `echo *.c */*.c`; do \
|
||||
- $(CC) -I. -I $(srcdir) -M @CPPFLAGS@ $(CPPFLAGS) $$DEPS | \
|
||||
+ $(CC) -I. -Iheaders -I $(srcdir) -M @CPPFLAGS@ $(CPPFLAGS) $$DEPS | \
|
||||
$(SED) 's/^\(.*\)\.o\([ :]+\)/\1.o \1.lo\2/g' >> $(DEPFILE) ; done
|
||||
|
||||
### INSTALL
|
||||
45
gpm-1.20.6-multilib.patch
Normal file
45
gpm-1.20.6-multilib.patch
Normal file
@ -0,0 +1,45 @@
|
||||
diff -up gpm-1.20.6/contrib/Makefile.in.multilib gpm-1.20.6/contrib/Makefile.in
|
||||
--- gpm-1.20.6/contrib/Makefile.in.multilib 2008-06-19 07:48:48.000000000 +0200
|
||||
+++ gpm-1.20.6/contrib/Makefile.in 2009-02-24 10:36:09.000000000 +0100
|
||||
@@ -9,10 +9,10 @@ top_builddir = ..
|
||||
|
||||
include $(top_builddir)/Makefile.include
|
||||
|
||||
-all: $(srcdir)/$(ELISP)
|
||||
+all: $(filter-out %.elc,$(srcdir)/$(ELISP))
|
||||
|
||||
install: all
|
||||
- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \
|
||||
+ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \
|
||||
$(INSTALL_DATA) $(srcdir)/$$i $(lispdir)/`basename $$i` ;\
|
||||
done; fi
|
||||
|
||||
@@ -20,7 +20,7 @@ install: all
|
||||
$(EMACS) -batch -l $(srcdir)/emacs/exec.el -exec '(byte-compile-file "$<")'
|
||||
|
||||
uninstall:
|
||||
- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \
|
||||
+ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \
|
||||
rm -f $(lispdir)/$$i ;\
|
||||
done; fi
|
||||
|
||||
@@ -28,4 +28,4 @@ dist:
|
||||
$(CP) -r $(srcdir) $(top_builddir)/gpm-$(release)/
|
||||
|
||||
clean distclean:
|
||||
- $(RM) -f $(srcdir)/emacs/*.elc Makefile
|
||||
+ $(RM) $(srcdir)/emacs/*.elc Makefile
|
||||
diff -up gpm-1.20.6/doc/Makefile.in.multilib gpm-1.20.6/doc/Makefile.in
|
||||
--- gpm-1.20.6/doc/Makefile.in.multilib 2009-02-09 10:58:53.000000000 +0100
|
||||
+++ gpm-1.20.6/doc/Makefile.in 2009-02-24 10:36:09.000000000 +0100
|
||||
@@ -130,8 +130,8 @@ install: all installdirs
|
||||
#i keep all my infopages compressed and i'm tired to do it by
|
||||
#hand, so check if there are any compressed pages and do this
|
||||
#one too
|
||||
- -ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \
|
||||
- && gzip -f $(infodir)/gpm.info
|
||||
+ #-ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \
|
||||
+ # && gzip -f $(infodir)/gpm.info
|
||||
# Hmm.... shouldn't man pages be compressed too?
|
||||
# maybe they should, but at least at my system they are not.
|
||||
|
||||
30
gpm-1.20.7-rhbz-668480-gpm-types-7-manpage-fixes.patch
Normal file
30
gpm-1.20.7-rhbz-668480-gpm-types-7-manpage-fixes.patch
Normal file
@ -0,0 +1,30 @@
|
||||
diff -Naur gpm-1.20.7.orig/doc/doc.gpm.in gpm-1.20.7/doc/doc.gpm.in
|
||||
--- gpm-1.20.7.orig/doc/doc.gpm.in 2012-10-26 23:21:38.000000000 +0200
|
||||
+++ gpm-1.20.7/doc/doc.gpm.in 2013-07-19 19:40:33.374213536 +0200
|
||||
@@ -600,7 +600,7 @@
|
||||
that one of @t{\-o dtr}, @t{\-o rts}, @t{\-o both} can be specified to
|
||||
toggle the control lines of the serial port.
|
||||
|
||||
-The following mouse type are corrently recognized:
|
||||
+The following mouse type are currently recognized:
|
||||
|
||||
@table @code
|
||||
@item bare Microsoft
|
||||
@@ -621,7 +621,7 @@
|
||||
this is your case, use the @samp{bare} mouse type. Some new
|
||||
two-button devices are ``plug and play'', and they don't play
|
||||
fair at all; in this case try @t{\-t pnp}. Many (most)
|
||||
- three-button devices that use the microsoft protocol fail to
|
||||
+ three-button devices that use the Microsoft protocol fail to
|
||||
report some middle-button events during mouse motion. Since
|
||||
the protocol does not distinguish between the middle button
|
||||
going up and the middle button going down it would be liable
|
||||
@@ -649,7 +649,7 @@
|
||||
decoder gets into a confused state where it thinks the middle
|
||||
button is up when it's down and vice versa. (If you get sick
|
||||
of having to do this, please don't blame gpm; blame your buggy
|
||||
- mouse! Note that most three-button mice that do the microsoft
|
||||
+ mouse! Note that most three-button mice that do the Microsoft
|
||||
protocol can be made to do the MouseSystems protocol
|
||||
instead. The ``3 Button Serial Mouse mini-HOWTO'' has
|
||||
information about this.) This mouse decoder accepts standard
|
||||
16
gpm-1.20.7-sigemptyset.patch
Normal file
16
gpm-1.20.7-sigemptyset.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff -r -u gpm-1.20.7-orig/src/prog/gpm-root.y gpm-1.20.7/src/prog/gpm-root.y
|
||||
--- gpm-1.20.7-orig/src/prog/gpm-root.y 2012-10-26 16:21:38.000000000 -0500
|
||||
+++ gpm-1.20.7/src/prog/gpm-root.y 2017-10-10 13:50:02.115721252 -0500
|
||||
@@ -1196,11 +1196,7 @@
|
||||
LOG_DAEMON : LOG_USER);
|
||||
/* reap your zombies */
|
||||
childaction.sa_handler=reap_children;
|
||||
-#if defined(__GLIBC__)
|
||||
- __sigemptyset(&childaction.sa_mask);
|
||||
-#else /* __GLIBC__ */
|
||||
- childaction.sa_mask=0;
|
||||
-#endif /* __GLIBC__ */
|
||||
+ sigemptyset(&childaction.sa_mask);
|
||||
childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */
|
||||
sigaction(SIGCHLD,&childaction,NULL);
|
||||
|
||||
14
gpm-1.20.7-sysmacros.patch
Normal file
14
gpm-1.20.7-sysmacros.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff -r -u gpm-1.20.7-orig/src/daemon/open_console.c gpm-1.20.7/src/daemon/open_console.c
|
||||
--- gpm-1.20.7-orig/src/daemon/open_console.c 2012-10-26 16:21:38.000000000 -0500
|
||||
+++ gpm-1.20.7/src/daemon/open_console.c 2017-10-10 13:40:39.896316258 -0500
|
||||
@@ -23,6 +23,10 @@
|
||||
#include <sys/stat.h> /* stat() */
|
||||
#include <sys/ioctl.h> /* ioctl */
|
||||
|
||||
+#ifdef HAVE_SYS_SYSMACROS_H
|
||||
+#include <sys/sysmacros.h> /* major() w/newer glibc */
|
||||
+#endif
|
||||
+
|
||||
/* Linux specific (to be outsourced in gpm2 */
|
||||
#include <linux/serial.h> /* for serial console check */
|
||||
#include <asm/ioctls.h> /* for serial console check */
|
||||
BIN
gpm-1.20.7.tar.xz
Normal file
BIN
gpm-1.20.7.tar.xz
Normal file
Binary file not shown.
12
gpm-format-security.patch
Normal file
12
gpm-format-security.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Naur gpm-1.20.6.orig/src/lib/report-lib.c gpm-1.20.6/src/lib/report-lib.c
|
||||
--- gpm-1.20.6.orig/src/lib/report-lib.c 2014-02-05 19:11:58.688000000 +0100
|
||||
+++ gpm-1.20.6/src/lib/report-lib.c 2014-02-05 19:11:23.968000000 +0100
|
||||
@@ -55,7 +55,7 @@
|
||||
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);
|
||||
14
gpm.service
Normal file
14
gpm.service
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Console Mouse manager
|
||||
|
||||
# This could probably benefit from socket activation, but honestly I think it
|
||||
# is time for gpm to go away, and hence I am not planning to spend the time
|
||||
# to add socket activation here.
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/sbin/gpm -m /dev/input/mice -t exps2
|
||||
Type=forking
|
||||
PIDFile=/var/run/gpm.pid
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
118
gpm.spec
Normal file
118
gpm.spec
Normal file
@ -0,0 +1,118 @@
|
||||
Name: gpm
|
||||
Version: 1.20.7
|
||||
Release: 17
|
||||
Summary: The gpm package contains a mouse server for the console and xterm
|
||||
License: GPLv2 and GPLv2+ with exceptions and GPLv3+ and Verbatim and Copyright only
|
||||
URL: http://www.nico.schottelius.org/software/gpm/
|
||||
Source: %{name}-%{version}.tar.xz
|
||||
Source1: gpm.service
|
||||
|
||||
Patch1: gpm-1.20.6-multilib.patch
|
||||
Patch2: gpm-1.20.5-close-fds.patch
|
||||
Patch3: gpm-1.20.7-rhbz-668480-gpm-types-7-manpage-fixes.patch
|
||||
Patch4: gpm-1.20.6-missing-header-dir-in-make-depend.patch
|
||||
Patch5: gpm-format-security.patch
|
||||
Patch6: gpm-1.20.7-sysmacros.patch
|
||||
Patch7: gpm-1.20.7-sigemptyset.patch
|
||||
|
||||
Patch6000: fix-highly-illegal-return-of-int-as-char-and-less-wo.patch
|
||||
Patch6001: fix-signedness-issue.patch
|
||||
|
||||
Requires(post): systemd systemd-sysv info
|
||||
Requires(preun): systemd info
|
||||
Requires(postun): systemd
|
||||
Requires: linuxconsoletools
|
||||
BuildRequires: autoconf automake bison gawk libtool libcap-ng-devel ncurses-devel sed systemd texinfo
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
|
||||
%description
|
||||
GPM(General Purpose Mouse) is a mouse serer for the console and xterm, with
|
||||
sample clients included like emacs.
|
||||
|
||||
%package libs
|
||||
Summary: Library for the gpm
|
||||
|
||||
%description libs
|
||||
This package contains the library which contains
|
||||
the gpm system calls and library functions.
|
||||
|
||||
%package devel
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Summary: Development files for the gpm library
|
||||
Provides: gpm-static
|
||||
Obsoletes: gpm-static
|
||||
|
||||
%description devel
|
||||
The gpm-devel package includes header files and libraries necessary
|
||||
for the gpm library.
|
||||
|
||||
%package help
|
||||
Summary: This package contains help documents
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
|
||||
%description help
|
||||
Files for help with gpm.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
./autogen.sh
|
||||
|
||||
%build
|
||||
%configure
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%makeinstall
|
||||
|
||||
chmod 0755 %{buildroot}/%{_libdir}/libgpm.so.2.1.0
|
||||
ln -sf libgpm.so.2.1.0 %{buildroot}/%{_libdir}/libgpm.so
|
||||
|
||||
cp conf/gpm-* %{buildroot}%{_sysconfdir}
|
||||
chmod 644 %{buildroot}%{_sysconfdir}/gpm-*
|
||||
mkdir -p %{buildroot}%{_unitdir}
|
||||
cp %{SOURCE1} %{buildroot}%{_unitdir}
|
||||
chmod 644 %{buildroot}%{_unitdir}/gpm.service
|
||||
|
||||
%post
|
||||
%systemd_post gpm.service
|
||||
if [ -e %{_infodir}/gpm.info.gz ]; then
|
||||
/sbin/install-info %{_infodir}/gpm.info.gz %{_infodir}/dir || :
|
||||
fi
|
||||
|
||||
%preun
|
||||
%systemd_preun gpm.service
|
||||
if [ $1 = 0 -a -e %{_infodir}/gpm.info.gz ]; then
|
||||
/sbin/install-info %{_infodir}/gpm.info.gz --delete %{_infodir}/dir || :
|
||||
fi
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart gpm.servic
|
||||
|
||||
%ldconfig_post
|
||||
%ldconfig_postun
|
||||
|
||||
%files
|
||||
%doc COPYING
|
||||
%{_infodir}/*
|
||||
%config(noreplace) %{_sysconfdir}/gpm-*
|
||||
%exclude %{_datadir}/emacs/site-lisp/t-mouse.el
|
||||
%{_unitdir}/gpm.service
|
||||
%{_sbindir}/*
|
||||
%{_bindir}/*
|
||||
|
||||
%files libs
|
||||
%{_libdir}/libgpm.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/*
|
||||
%{_libdir}/libgpm.so
|
||||
%{_libdir}/libgpm.a
|
||||
|
||||
%files help
|
||||
%doc README TODO doc/README* doc/FAQ doc/Announce doc/changelog
|
||||
%{_mandir}/man?/*
|
||||
|
||||
%changelog
|
||||
* Fri Sep 20 2019 Yiru Wang <wangyiru1@huawei.com> - 1.20.7-17
|
||||
- Pakcage init
|
||||
Loading…
x
Reference in New Issue
Block a user