Hello community,
here is the log from the commit of package gpm for openSUSE:Factory
checked in at Thu Sep 9 14:55:41 CEST 2010.
--------
--- gpm/gpm.changes 2010-01-10 20:07:49.000000000 +0100
+++ gpm/gpm.changes 2010-09-08 20:00:30.000000000 +0200
@@ -1,0 +2,31 @@
+Wed Sep 8 19:59:58 CEST 2010 - pth@suse.de
+
+- Fix patches.
+
+-------------------------------------------------------------------
+Wed Sep 8 17:17:02 CEST 2010 - pth@suse.de
+
+- Update to latest stable version 1.20.6. Notable changes since
+ 1.20.1:
+ * Fix default handler in liblow.c
+ * Fixed SONAME (praise the Debian guys, Jonathan Nieder)
+ * Fix possible segfault (FD_SET/negative)
+ * Allow specifying ELISP variable on commandline
+ * Fix broken code semantics
+ * Fix socklen_t issue: Require posix header
+ * Fix building with glibc 2.8
+ * Updated library to version 2.1.0
+ * Gpm_GetLibVersion behaves more consistent (all numbers are one or two digits)
+- Remove version number from patch name.
+- Adapt and clean out patches.
+- Split out contained patches to a separate tar ball as not to
+ confuse quilt.
+- Use lzma instead of bzip2 to compress tarball.
+
+-------------------------------------------------------------------
+Tue Sep 7 11:06:22 UTC 2010 - aj@suse.de
+
+- Split up devel package, do not package static library.
+- Remove support for updating from SUSE Linux 8.2.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
gpm-1.20.1-Gpm_Open.patch
gpm-1.20.1-OPEN_MAX.patch
gpm-1.20.1-ceil.patch
gpm-1.20.1-conf.patch
gpm-1.20.1-daemon_mode.patch
gpm-1.20.1-glibc210.patch
gpm-1.20.1-gunze-overflow.patch
gpm-1.20.1-log.patch
gpm-1.20.1-no_templates_for_new_multiple_mode.patch
gpm-1.20.1-ps2_command_bytes.patch
gpm-1.20.1-ps2_read.patch
gpm-1.20.1-ps2_reconnection.patch
gpm-1.20.1-quiet_libgpm.patch
gpm-1.20.1-silitek.patch
gpm-1.20.1-syn_conf.patch
gpm-1.20.1-va_arg.patch
gpm-1.20.1-verbosity.patch
gpm-1.20.1-warnings.patch
gpm-1.20.1.patch
gpm-1.20.1.tar.bz2
New:
----
gpm-1.20.6-patches.tar.lzma
gpm-1.20.6.tar.lzma
gpm-DESTDIR.patch
gpm-Gpm_Open.patch
gpm-ceil.patch
gpm-conf.patch
gpm-daemon_mode.patch
gpm-glibc210.patch
gpm-int_ptr_casts.patch
gpm-log.patch
gpm-no_templates_for_new_multiple_mode.patch
gpm-ps2_command_bytes.patch
gpm-ps2_read.patch
gpm-ps2_reconnection.patch
gpm-quiet_libgpm.patch
gpm-silitek.patch
gpm-syn_conf.patch
gpm-use_getdtablesize.patch
gpm-va_arg.patch
gpm-verbosity.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gpm.spec ++++++
--- /var/tmp/diff_new_pack.jMPTHq/_old 2010-09-09 14:48:49.000000000 +0200
+++ /var/tmp/diff_new_pack.jMPTHq/_new 2010-09-09 14:48:49.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package gpm (Version 1.20.1)
+# spec file for package gpm (Version 1.20.6)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,7 +19,7 @@
Name: gpm
-BuildRequires: bison ncurses-devel
+BuildRequires: bison lzma ncurses-devel
Url: http://linux.schottelius.org/gpm/
License: GPLv2+
Group: System/Console
@@ -31,33 +31,33 @@
Obsoletes: gpm-64bit
%endif
#
-Version: 1.20.1
-Release: 455
+Version: 1.20.6
+Release: 1
Summary: Console Mouse Support
-Source0: http://arcana.linux.it/pub/gpm/gpm-%{version}.tar.bz2
-Source1: rcgpm
-Source2: sysconfig.mouse-%{name}
-Source3: README.SuSE
-Source4: baselibs.conf
-Patch0: gpm-%{version}.patch
-Patch1: gpm-%{version}-ps2_command_bytes.patch
-Patch2: gpm-%{version}-ps2_read.patch
-Patch3: gpm-%{version}-ps2_reconnection.patch
-Patch4: gpm-%{version}-syn_conf.patch
-Patch5: gpm-%{version}-silitek.patch
-Patch6: gpm-%{version}-conf.patch
-Patch7: gpm-%{version}-va_arg.patch
-Patch8: gpm-%{version}-quiet_libgpm.patch
-Patch9: gpm-%{version}-no_templates_for_new_multiple_mode.patch
-Patch10: gpm-%{version}-ceil.patch
-Patch11: gpm-%{version}-Gpm_Open.patch
-Patch12: gpm-%{version}-daemon_mode.patch
-Patch13: gpm-%{version}-gunze-overflow.patch
-Patch14: gpm-%{version}-warnings.patch
-Patch15: gpm-%{version}-verbosity.patch
-Patch16: gpm-%{version}-OPEN_MAX.patch
-Patch17: %{name}-%{version}-log.patch
-Patch18: %{name}-%{version}-glibc210.patch
+Source0: gpm-%{version}.tar.lzma
+Source1: gpm-%{version}-patches.tar.lzma
+Source2: rcgpm
+Source3: sysconfig.mouse-%{name}
+Source4: README.SuSE
+Source5: baselibs.conf
+Patch0: gpm-DESTDIR.patch
+Patch1: gpm-ps2_command_bytes.patch
+Patch2: gpm-ps2_read.patch
+Patch3: gpm-ps2_reconnection.patch
+Patch4: gpm-syn_conf.patch
+Patch5: gpm-silitek.patch
+Patch6: gpm-conf.patch
+Patch7: gpm-va_arg.patch
+Patch8: gpm-quiet_libgpm.patch
+Patch9: gpm-no_templates_for_new_multiple_mode.patch
+Patch10: gpm-ceil.patch
+Patch11: gpm-Gpm_Open.patch
+Patch12: gpm-daemon_mode.patch
+Patch15: gpm-verbosity.patch
+Patch17: gpm-log.patch
+Patch18: gpm-glibc210.patch
+Patch19: gpm-use_getdtablesize.patch
+Patch20: gpm-int_ptr_casts.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %install_info_prereq
@@ -71,8 +71,17 @@
Authors:
--------
- Alessandro Rubini
- Nico Schottelius
+ Alessandro Rubini <rubini at ipvvis.unipv.it>
+ Nico Schottelius <nico at schottelius.org>
+
+%package devel
+License: GPLv2+
+Group: Development/Libraries/C and C++
+Requires: %{name} = %{version}
+Summary: Development files for gpm (Console Mouse Support)
+
+%description devel
+Development files for the gpm (general purpose mouse) package.
%prep
%setup -q
@@ -89,14 +98,13 @@
%patch10
%patch11
%patch12
-%patch13
-%patch14
%patch15
-%patch16 -p1
%patch17
-%patch18 -p1
-#
-cp %{S:1} %{S:2} %{S:3} .
+%patch18
+%patch19
+%patch20
+
+cp %{S:2} %{S:3} %{S:4} .
%build
# This package failed when testing with -Wl,-as-needed being default.
@@ -112,10 +120,12 @@
make
%install
-make DESTDIR=$RPM_BUILD_ROOT install
+make ROOT="" DESTDIR=$RPM_BUILD_ROOT install
#
# gpm confings
+install -d $RPM_BUILD_ROOT/etc/${file/conf\/gpm-/gpm\/}
for file in conf/gpm-* ; do
+ install -d $RPM_BUILD_ROOT/etc/${file/conf\/gpm-/gpm\/}
install -m 644 $file $RPM_BUILD_ROOT/etc/${file/conf\/gpm-/gpm\/}
done
#
@@ -131,19 +141,6 @@
install -m 644 sysconfig.mouse-%{name} $RPM_BUILD_ROOT/var/adm/fillup-templates
install -m 755 rcgpm $RPM_BUILD_ROOT/etc/init.d/gpm
ln -sf ../../etc/init.d/gpm $RPM_BUILD_ROOT/usr/sbin/rcgpm
-
-%preun
-%stop_on_removal gpm
-
-%post
-/sbin/ldconfig
-# rename variable in all possible locations for update
-for i in etc/rc.config etc/sysconfig/mouse ; do
- if test -f $i ; then
- sed -e "s@^MOUSE=@MOUSEDEVICE=@" $i > $i.t && mv $i.t $i
- rm -f $i.t
- fi
-done
# there were two variables with the same value GPM_PROTOCOL and MOUSETYPE
# in SuLi 8.2. The MOUSETYPE variable better conforms with with other
# variable names MOUSEDEVICE and XMOUSETYPE name scheme, so get rid of
@@ -156,6 +153,15 @@
# rename GPM_PROTOCOL to MOUSETYPE
perl -pi -e "s|^GPM_PROTOCOL=(.*)$|\# the variable GPM_PROTOCOL was renamed to MOUSETYPE\nMOUSETYPE=\$1|" /etc/sysconfig/mouse
fi
+
+# Do not package static library
+rm -f $RPM_BUILD_ROOT/%{_libdir}/libgpm.a
+
+%preun
+%stop_on_removal gpm
+
+%post
+/sbin/ldconfig
%{fillup_and_insserv gpm}
%{fillup_only -an mouse}
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
@@ -171,7 +177,7 @@
%files
%defattr(-,root,root)
-%doc BUGS COPYING Changes README README.SuSE TODO
+%doc BUGS COPYING README README.SuSE TODO doc/changes
%doc doc/Announce doc/FAQ doc/README*
%{_infodir}/*
%{_mandir}/*/*
@@ -180,8 +186,12 @@
%config /etc/init.d/gpm
%{_bindir}/*
%{_sbindir}/*
-%{_includedir}/*.h
-%{_libdir}/lib*
+%{_libdir}/libgpm.so.*
/var/adm/fillup-templates/*
+%files devel
+%defattr(-,root,root)
+%{_includedir}/*.h
+%{_libdir}/libgpm.so
+
%changelog
++++++ gpm-DESTDIR.patch ++++++
Index: Makefile.in
===================================================================
--- Makefile.in.orig 2009-02-09 10:58:53.000000000 +0100
+++ Makefile.in 2010-09-07 19:08:40.912655993 +0200
@@ -87,9 +87,13 @@ install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) $(STRIP)' install
installdirs:
- $(MKDIR) $(libdir) $(bindir) $(sbindir) $(includedir) $(sysconfdir); \
+ $(INSTALL_DIR) $(DESTDIR)$(libdir)
+ $(INSTALL_DIR) $(DESTDIR)$(bindir)
+ $(INSTALL_DIR) $(DESTDIR)$(sbindir)
+ $(INSTALL_DIR) $(DESTDIR)$(includedir)
+ $(INSTALL_DIR) $(DESTDIR)$(sysconfdir); \
if test "x$(ELISP)" != "x" ; then \
- $(MKDIR) $(lispdir) ; \
+ $(MKDIR) $(DESTDIR)$(lispdir) ; \
fi
### GENERIC
Index: Makefile.include.in
===================================================================
--- Makefile.include.in.orig 2009-02-09 10:58:53.000000000 +0100
+++ Makefile.include.in 2010-09-07 19:03:04.962483820 +0200
@@ -43,6 +43,7 @@ YACC = @YACC@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
+INSTALL_DIR = @INSTALL@ -d
LN_S = @LN_S@
EMACS = @EMACS@
ELISP = @ELISP@
Index: doc/Makefile.in
===================================================================
--- doc/Makefile.in.orig 2009-02-09 10:58:53.000000000 +0100
+++ doc/Makefile.in 2010-09-07 19:09:37.506283144 +0200
@@ -111,29 +111,18 @@ gpmdoc.ps: gpm.ps
# install & uninstall
installdirs:
- $(MKDIR) $(man1dir) $(man7dir) $(man8dir) $(infodir)
+ $(INSTALL_DIR) $(DESTDIR)$(man1dir)
+ $(INSTALL_DIR) $(DESTDIR)$(man7dir)
+ $(INSTALL_DIR) $(DESTDIR)$(man8dir)
+ $(INSTALL_DIR) $(DESTDIR)$(infodir)
install: all installdirs
- $(INSTALL_DATA) -m 644 mev.1 $(man1dir)
- $(INSTALL_DATA) -m 644 mouse-test.1 $(man1dir)
- $(INSTALL_DATA) -m 644 gpm-root.1 $(man1dir)
- $(INSTALL_DATA) -m 644 gpm-types.7 $(man7dir)
- $(INSTALL_DATA) -m 644 gpm.8 $(man8dir)
- $(INSTALL_DATA) -m 644 $(srcdir)/gpm.info $(infodir)
- # Use install-info if available
- -if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
- if [ -f $(infodir)/dir ] ; then \
- install-info --dir-file=$(infodir)/dir $(infodir)/gpm.info; \
- fi; \
- fi
- #itz Sat Dec 26 23:21:05 PST 1998
- #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
- # Hmm.... shouldn't man pages be compressed too?
- # maybe they should, but at least at my system they are not.
+ $(INSTALL_DATA) -m 644 mev.1 $(DESTDIR)$(man1dir)
+ $(INSTALL_DATA) -m 644 mouse-test.1 $(DESTDIR)$(man1dir)
+ $(INSTALL_DATA) -m 644 gpm-root.1 $(DESTDIR)$(man1dir)
+ $(INSTALL_DATA) -m 644 gpm-types.7 $(DESTDIR)$(man7dir)
+ $(INSTALL_DATA) -m 644 gpm.8 $(DESTDIR)$(man8dir)
+ $(INSTALL_DATA) -m 644 $(srcdir)/gpm.info $(DESTDIR)$(infodir)
# This potentially leaves around cached manpages,
# e.g. /var/cache/man/cat1/mev.1.gz. Deleting these is not our job,
Index: src/Makefile.in
===================================================================
--- src/Makefile.in.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/Makefile.in 2010-09-07 19:07:57.361560078 +0200
@@ -104,15 +104,16 @@ check: all
installdirs:
install: check
- $(INSTALL_PROGRAM) gpm $(sbindir)/gpm
- $(INSTALL_DATA) -m 644 lib/libgpm.a $(libdir)/libgpm.a
- $(INSTALL_DATA) -m 644 $(srcdir)/headers/gpm.h $(includedir)/gpm.h
+ $(INSTALL_PROGRAM) gpm $(DESTDIR)$(sbindir)/gpm
+ $(INSTALL_DATA) -m 644 lib/libgpm.a $(DESTDIR)$(libdir)/libgpm.a
+ $(INSTALL_DATA) -m 644 $(srcdir)/headers/gpm.h $(DESTDIR)$(includedir)/gpm.h
# POSIX requires the range of a for loop be nonempty and Bash
# 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@ ; \
- cd $(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so.@abi_lev@ ; \
+ $(INSTALL_DATA) -m 755 lib/libgpm.so.@abi_full@ $(DESTDIR)$(libdir)/libgpm.so.@abi_full@ ; \
+ cd $(DESTDIR)$(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so ; \
+ cd $(DESTDIR)$(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@" ; \
echo "Or to update everything just type ldconfig" ; \
@@ -122,7 +123,7 @@ install: check
# prog/
for i in $(PROG); do \
- $(INSTALL_PROGRAM) $$i $(bindir)/`echo $$i | sed 's,prog/,,'` ;\
+ $(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/`echo $$i | sed 's,prog/,,'` ;\
done
install-strip:
++++++ gpm-Gpm_Open.patch ++++++
Index: src/lib/liblow.c
===================================================================
--- src/lib/liblow.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/lib/liblow.c 2010-09-08 16:42:15.667355974 +0200
@@ -255,6 +255,10 @@ int Gpm_Open(Gpm_Connect *conn, int flag
if (tty == NULL) {
gpm_report(GPM_PR_ERR,"checking tty name failed");
goto err;
+ }
+ if (consolename == NULL) {
+ gpm_report(GPM_PR_ERR,"consolename not set");
+ goto err;
}
conn->vc=atoi(&tty[strlen(consolename)-1]);
++++++ gpm-ceil.patch ++++++
Note that GCC 4.0 will optimize ceil (constant), we therefore
have to make the argument non-constant.
================================================================================
Index: configure.ac
===================================================================
--- configure.ac.orig 2009-02-09 10:58:53.000000000 +0100
+++ configure.ac 2010-09-08 16:10:06.434722846 +0200
@@ -108,6 +108,25 @@ fi
AC_CHECK_FUNCS(vsyslog syslog)
AC_FUNC_ALLOCA
+AC_MSG_CHECKING(for ceil)
+AC_TRY_LINK([#define __NO_MATH_INLINES 1
+ double d;],
+ [d = ceil(1.0*d);],
+ SYNLDFLAGS=""
+ AC_MSG_RESULT(yes),
+ SYNLDFLAGS=-lm
+ AC_MSG_RESULT(no))
+
+if test "$SYNLDFLAGS" = "-lm" ; then
+ SAVE_LIBS="$LIBS"
+ AC_CHECK_LIB(m,
+ ceil,
+ ,
+ echo "libmath.so is needed due the ceil function"
+ exit 1)
+ LIBS="$SAVE_LIBS"
+fi
+
case $with_curses in
No|no|N|n) SHARED_LIBS=-lc ;;
*)
@@ -138,6 +157,7 @@ AC_SUBST(ELISP)
AC_SUBST(SHLIB)
AC_SUBST(PICFLAGS)
AC_SUBST(SOLDFLAGS)
+AC_SUBST(SYNLDFLAGS)
AC_SUBST(CURSES_OBJS)
AC_SUBST(SHARED_LIBS)
AC_SUBST(lispdir)
Index: src/Makefile.in
===================================================================
--- src/Makefile.in.orig 2010-09-08 16:06:46.812997967 +0200
+++ src/Makefile.in 2010-09-08 16:09:40.464506680 +0200
@@ -82,7 +82,7 @@ prog/%: prog/%.o
all: gpm lib/libgpm.so.@abi_lev@ lib/libgpm.a $(PROG)
gpm: $(GOBJ)
- $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $(GOBJ) @LIBS@ $(LIBS) -lm
+ $(CC) @LDFLAGS@ @SYNLDFLAGS@ -o $@ $(GOBJ) @LIBS@ $(LIBS) -lm
# construct dependings of sourcefiles and link sourcefiles
$(DEPFILE) dep: prog/gpm-root.c
@@ -164,7 +164,8 @@ lib/libgpm.a: $(LOBJ)
lib/libgpm.so.@abi_full@: $(PICS)
$(CC) @SOLDFLAGS@libgpm.so.@abi_lev@ \
- @LDFLAGS@ $(LDFLAGS) -o lib/libgpm.so.@abi_full@ $^ @LIBS@ @SHARED_LIBS@ $(LIBS)
+ @LDFLAGS@ $(LDFLAGS) -o lib/libgpm.so.@abi_full@ $^ @LIBS@ @SHARED_LIBS@ @SYNLDFLAGS@ $(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?
++++++ gpm-conf.patch ++++++
Index: README
===================================================================
--- README.orig 2009-02-09 10:58:53.000000000 +0100
+++ README 2010-09-08 13:26:14.060039119 +0200
@@ -128,7 +128,7 @@ Configuration is optional...
(string-match "con.*" (getenv "TERM"))))
(load-library "t-mouse"))
-* If you want to use gpm-root, copy gpm-root.conf to your /usr/etc
+* If you want to use gpm-root, copy gpm-root.conf to your /etc/gpm/root.conf
directory, test it out and then edit it to suit your feels.
* You'd like to name the gpm info file inside /usr/info/dir. Just insert
Index: doc/README.silitek
===================================================================
--- doc/README.silitek.orig 2010-09-08 13:26:13.916055341 +0200
+++ doc/README.silitek 2010-09-08 13:26:14.084036415 +0200
@@ -14,11 +14,11 @@ This IR commander can be used with two t
Both types of mouse driver uses the system wide configuration file
- /etc/gpm-silitek.conf
+ /etc/gpm/silitek.conf
which defines the return values of any key not being mouse button
or mouse stick. For this keys the drag mouse button works as a
-modifier: pressed once, the last column in /etc/gpm-silitek.conf
+modifier: pressed once, the last column in /etc/gpm/silitek.conf
is used. To switch back to the normal return values, the drag mouse
button has to be pressed again. It is allowed to use escaped
sequences as return values. Characters other than printable can
@@ -169,7 +169,7 @@ EOF
--------------------------------------------------------------------
the Multimedia keys on IR Keyboard SK-7100 are usable (for ncurses
-based programs see below). After editing /etc/gpm-silitek.conf
+based programs see below). After editing /etc/gpm/silitek.conf
to get the similar named keys to work similar, both the IR Keyboard
SK-7100 and the IR commander SM-1000 are usable in parallel.
Index: doc/README.synaptics
===================================================================
--- doc/README.synaptics.orig 2009-02-09 10:58:53.000000000 +0100
+++ doc/README.synaptics 2010-09-08 13:26:14.108033711 +0200
@@ -25,8 +25,8 @@ the buttons, this support currently has
These features can be enabled/disabled and many of them have time and speed
parameters which can be adjusted to the taste of the user. These parameters
-can be provided in the "/usr/etc/gpm-syn.conf" file (or
-/usr/local/etc/gpm-syn.conf, or /etc/gpm-syn.conf, according to how you ran
+can be provided in the "/etc/gpm/syn.conf" file (or /usr/etc/syn.conf
+/usr/local/etc/syn.conf, or /etc/syn.conf, according to how you ran
configure). Each line in this file has the following syntax: [param-name]
<value>
Index: doc/README.twiddler
===================================================================
--- doc/README.twiddler.orig 2009-02-09 10:58:53.000000000 +0100
+++ doc/README.twiddler 2010-09-08 13:26:14.128031459 +0200
@@ -101,23 +101,23 @@ precompile values because that would mea
file, and provide documentation as well. Using a compulsory
configuration file reliefs my workload :-)
-The file "gpm-twiddler.conf" that appears in the gpm configuration
+The file "twiddler.conf" that appears in the gpm configuration
includes the default keyboard map, and can be used right away. If the
file is not in place, gpm will complain about its absence. By default
-the file must live in /usr/etc (or /usr/local/etc, or whatever you
+the file must live in /etc/gpm (or /usr/local/etc, or whatever you
gave as a prefix to ./configure). The behaviour is similar for
different installation prefixes. The file is not installed by "make
install". If the file is missing, gpm will exit producing a message
like this:
- ./gpm: /usr/etc/gpm-twiddler.conf: No such file or directory
+ ./gpm: /etc/gpm/twiddler.conf: No such file or directory
The distributed configuration file includes its own documentation.
If you want to add keys to the default file, you can avoid editing it
-by writing a "gpm-twiddler.user" file and putting it in the same
-directory as gpm-twiddler.conf. Gpm will read both files, in sequence,
-but won't complain if gpm-twiddler.user doesn't exist.
+by writing a "twiddler.user" file and putting it in the same
+directory as twiddler.conf. Gpm will read both files, in sequence,
+but won't complain if twiddler.user doesn't exist.
Gpm will print an error message for any incorrect line in any of the
configuration files: error messages include the file name and the
Index: doc/doc.gpm.in
===================================================================
--- doc/doc.gpm.in.orig 2008-06-16 22:44:05.000000000 +0200
+++ doc/doc.gpm.in 2010-09-08 13:26:14.128031459 +0200
@@ -1971,7 +1971,7 @@ Available command line options are the f
@item -u
Deny using user-specific configuration files. With this
- option on, only @file{/etc/gpm-root.conf} will be used as a source
+ option on, only @file{/etc/gpm/root.conf} will be used as a source
of configuration information. This option
is intended for those system administrators who fear security could
be broken by this daemon. Things should be sufficiently secure, but
@@ -1999,7 +1999,7 @@ changed. This allows modification of per
the daemon.
%M The actual configuration file is better introduced by looking at your
-%M @file{/etc/gpm-root.conf}.
+%M @file{/etc/gpm/root.conf}.
%M
%MSKIP
@@ -2186,7 +2186,7 @@ Alessandro Rubini
.SH FILES
.nf
/dev/gpmctl The socket used to connect to gpm.
-/etc/gpm-root.conf The default configuration file.
+/etc/gpm/root.conf The default configuration file.
$(HOME)/.gpm-root The user configuration file.
/dev/vcs* Virtual Console Screens
.fi
Index: doc/gpm.info
===================================================================
--- doc/gpm.info.orig 2009-02-09 10:59:44.000000000 +0100
+++ doc/gpm.info 2010-09-08 13:26:14.168026952 +0200
@@ -1594,7 +1594,7 @@ distribution directory. The tool won't r
`-u'
Deny using user-specific configuration files. With this option on,
- only `/etc/gpm-root.conf' will be used as a source of
+ only `/etc/gpm/root.conf' will be used as a source of
configuration information. This option is intended for those
system administrators who fear security could be broken by this
daemon. Things should be sufficiently secure, but if you find a
Index: src/headers/silitek.h
===================================================================
--- src/headers/silitek.h.orig 2010-09-08 13:26:14.000045878 +0200
+++ src/headers/silitek.h 2010-09-08 13:26:14.224020642 +0200
@@ -27,7 +27,7 @@ extern void silitek_keys(unsigned char *
extern void silitek_keys_ps2(unsigned char *data, int *drag);
extern int silitek_ghost_ps2(unsigned char *data);
extern int fd_silitek;
-#define SILI_SYSTEM_FILE SYSCONFDIR "/gpm-silitek.conf"
+#define SILI_SYSTEM_FILE SYSCONFDIR "/silitek.conf"
#define SILISTRLEN 32
#define SILISTRSCN "key %32s %32s %32s"
extern void silitek_mapping(void);
Index: src/headers/twiddler.h
===================================================================
--- src/headers/twiddler.h.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/headers/twiddler.h 2010-09-08 13:26:14.284013884 +0200
@@ -46,7 +46,7 @@
#define TW_M_MASK 0x1FF /* mask of movement bits, after shifting */
#define TW_M_BIT 0x100
-#define TW_SYSTEM_FILE SYSCONFDIR "/gpm-twiddler.conf"
-#define TW_CUSTOM_FILE SYSCONFDIR "/gpm-twiddler.user"
+#define TW_SYSTEM_FILE SYSCONFDIR "/twiddler.conf"
+#define TW_CUSTOM_FILE SYSCONFDIR "/twiddler.user"
Index: src/prog/gpm-root.y
===================================================================
--- src/prog/gpm-root.y.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/prog/gpm-root.y 2010-09-08 13:26:14.304011630 +0200
@@ -77,7 +77,7 @@
#endif
#define USER_CFG ".gpm-root"
-#define SYSTEM_CFG SYSCONFDIR "/gpm-root.conf"
+#define SYSTEM_CFG SYSCONFDIR "/root.conf"
#define DEFAULT_FORE 7
#define DEFAULT_BACK 0
Index: src/synaptics.c
===================================================================
--- src/synaptics.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/synaptics.c 2010-09-08 13:26:14.308011179 +0200
@@ -2064,7 +2064,7 @@ static void tp_process_report (Gpm_Event
** syn_read_config_file
**
** Read the configuration data from the global config file
-** SYSCONFDIR "/gpm-syn.conf".
+** SYSCONFDIR "/syn.conf".
*/
void tp_read_config_file (char* config_filename)
{
@@ -2188,7 +2188,7 @@ static void syn_process_config (info_typ
gpm_report (GPM_PR_INFO, " Firmware version %d.%d\n",
ident.info_major, ident.info_minor);
- tp_read_config_file ("gpm-syn.conf");
+ tp_read_config_file ("syn.conf");
/* Limit the options depending on the touchpad capabilities. This should be
++++++ gpm-daemon_mode.patch ++++++
Index: src/headers/message.h
===================================================================
--- src/headers/message.h.orig 2010-09-08 16:43:48.924334502 +0200
+++ src/headers/message.h 2010-09-08 16:43:49.456294395 +0200
@@ -146,6 +146,7 @@
#define GPM_MESS_SETSID_FAILED "Setsid failed"
#define GPM_MESS_CHDIR_FAILED "change directory failed"
#define GPM_MESS_FORK_FAILED "Fork failed."
+#define GPM_MESS_DAEMON_FAILED "Change to run in background failed."
#define GPM_MESS_VCCHECK "Failed on virtual console check."
#define GPM_MESS_PROT_ERR "Error in protocol"
#define GPM_MESS_ROOT "You should be root to run gpm!"
Index: src/daemon/startup.c
===================================================================
--- src/daemon/startup.c.orig 2010-09-08 16:43:49.328304044 +0200
+++ src/daemon/startup.c 2010-09-08 16:46:36.665526251 +0200
@@ -126,7 +126,7 @@ void startup(int argc, char **argv)
if (option.run_status == GPM_RUN_STARTUP ) { /* else is debugging */
if (daemon(0,0))
- gpm_report(GPM_PR_OOPS,GPM_MESS_FORK_FAILED); /* error */
+ gpm_report(GPM_PR_OOPS,GPM_MESS_DAEMON_FAILED); /* error */
option.run_status = GPM_RUN_DAEMON; /* child */
}
++++++ gpm-glibc210.patch ++++++
Index: gpm-1.20.1/src/gpm.c
===================================================================
--- src/daemon/gpm.c
+++ src/daemon/gpm.c
@@ -22,6 +22,7 @@
********/
#include
+#define __USE_GNU
#include
#include /* strerror(); ?!? */
#include
++++++ gpm-int_ptr_casts.patch ++++++
Index: src/twiddler.c
===================================================================
--- src/twiddler.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/twiddler.c 2010-09-08 18:13:31.706407202 +0200
@@ -429,7 +429,7 @@ char *twiddler_rest_to_value(char *s)
return strdup(buf);
}
if (*ptr == '\\')
- return (char *)twiddler_escape_sequence(ptr+1, &len /* unused */);
+ return (char *)(long)twiddler_escape_sequence(ptr+1, &len /* unused */);
if (strlen(ptr)==1) return ((char *)((unsigned long)*ptr & 0xFF));
++++++ gpm-log.patch ++++++
Index: src/report.c
===================================================================
--- src/report.c.orig 2010-09-08 17:04:41.743044084 +0200
+++ src/report.c 2010-09-08 17:08:22.257855674 +0200
@@ -92,8 +92,9 @@ void gpm_report(int line, char *file, in
switch(stat) {
case GPM_STAT_INFO:
#ifdef HAVE_VSYSLOG
- syslog(LOG_INFO | LOG_USER, GPM_STRING_INFO);
- vsyslog(LOG_INFO | LOG_USER, text, ap2);
+ // gpm spams /var/log/messages (bnc#307209)
+ // syslog(LOG_INFO | LOG_USER, GPM_STRING_INFO);
+ // vsyslog(LOG_INFO | LOG_USER, text, ap2);
#else
fprintf(stderr,GPM_STRING_INFO);
vfprintf(stderr,text,ap);
++++++ gpm-no_templates_for_new_multiple_mode.patch ++++++
Index: src/daemon/cmdline.c
===================================================================
--- src/daemon/cmdline.c.orig 2010-09-08 18:38:23.672261112 +0200
+++ src/daemon/cmdline.c 2010-09-08 19:43:17.467206480 +0200
@@ -46,38 +46,35 @@ void cmdline(int argc, char **argv)
if (optarg)
opt_age_limit = atoi(optarg); break;
case 'b': (which_mouse->opt_baud) = atoi(optarg); break;
- case 'B': (which_mouse->opt_sequence) = optarg; break;
+ case 'B': (which_mouse->opt_sequence) = optarg; break;
case 'd': (which_mouse->opt_delta) = atoi(optarg); break;
case 'D': option.run_status = GPM_RUN_DEBUG; break;
case 'g': (which_mouse->opt_glidepoint_tap)=atoi(optarg); break;
case 'h': exit(usage(NULL));
- case 'i': (which_mouse->opt_time)=atoi(optarg); break;
+ case 'i': (which_mouse->opt_time)=atoi(optarg); break;
case 'k': check_kill(); break;
case 'l': opt_lut = optarg; break;
- case 'm': add_mouse(GPM_ADD_DEVICE,optarg);
- (which_mouse->opt_dev) = optarg; break; /* GO AWAY!*/
+ case 'm': (which_mouse->opt_dev) = optarg; break; /* GO AWAY!*/
case 'M': opt_double++; option.repeater++;
if (option.repeater_type == 0)
option.repeater_type = "msc";
which_mouse=mouse_table+2; break;
- case 'o': add_mouse(GPM_ADD_OPTIONS,optarg);
- gpm_report(GPM_PR_DEBUG,"options: %s",optarg);
- (which_mouse->opt_options) = optarg; break; /* GO AWAY */
+ case 'o': gpm_report(GPM_PR_DEBUG,"options: %s",optarg);
+ (which_mouse->opt_options) = optarg; break; /* GO AWAY */
case 'p': opt_ptrdrag = 0; break;
case 'r':
/* being called responsiveness, I must take the inverse */
(which_mouse->opt_scale)=atoi(optarg);
if(!(which_mouse->opt_scale) || (which_mouse->opt_scale) > 100) (which_mouse->opt_scale)=100; /* the maximum */
- else (which_mouse->opt_scale)=100/(which_mouse->opt_scale); break;
+ else (which_mouse->opt_scale)=100/(which_mouse->opt_scale); break;
case 'R':
option.repeater++;
if (optarg) option.repeater_type = optarg;
else option.repeater_type = "msc"; break;
- case 's': (which_mouse->opt_sample) = atoi(optarg); break;
+ case 's': (which_mouse->opt_sample) = atoi(optarg); break;
case 'S': if (optarg) opt_special = optarg;
else opt_special=""; break;
- case 't': add_mouse(GPM_ADD_TYPE,optarg);
- (which_mouse->opt_type) = optarg; break; /* GO AWAY */
+ case 't': (which_mouse->opt_type) = optarg; break; /* GO AWAY */
case 'u': option.autodetect = 1; break;
case 'T': opt_test++; break;
case 'v': printf(GPM_MESS_VERSION "\n"); exit(0);
Index: src/daemon/startup.c
===================================================================
--- src/daemon/startup.c.orig 2010-09-08 18:38:23.672261112 +0200
+++ src/daemon/startup.c 2010-09-08 19:42:23.770512127 +0200
@@ -139,6 +139,5 @@ void startup(int argc, char **argv)
/****************** OLD CODE from gpn.c END ***********************/
- init_mice(option.micelist); /* reads option.micelist */
atexit(gpm_exited); /* call gpm_exited at the end */
}
++++++ gpm-ps2_command_bytes.patch ++++++
Index: src/headers/gpmInt.h
===================================================================
--- src/headers/gpmInt.h.orig 2010-09-08 13:25:25.777479285 +0200
+++ src/headers/gpmInt.h 2010-09-08 13:25:31.112878123 +0200
@@ -50,21 +50,27 @@
/*** mouse commands ***/
-#define GPM_AUX_SEND_ID 0xF2
+#define GPM_AUX_SEND_ID 0xF2 /* Get ID: ACK + 1 byte ID */
#define GPM_AUX_ID_ERROR -1
#define GPM_AUX_ID_PS2 0
#define GPM_AUX_ID_IMPS2 3
/* these are shameless stolen from /usr/src/linux/include/linux/pc_keyb.h */
-#define GPM_AUX_SET_RES 0xE8 /* Set resolution */
#define GPM_AUX_SET_SCALE11 0xE6 /* Set 1:1 scaling */
#define GPM_AUX_SET_SCALE21 0xE7 /* Set 2:1 scaling */
-#define GPM_AUX_GET_SCALE 0xE9 /* Get scaling factor */
+#define GPM_AUX_SET_RES 0xE8 /* Set resolution */
+#define GPM_AUX_GET_SCALE 0xE9 /* Get scaling factor: ACK + 3 byte status pack */
#define GPM_AUX_SET_STREAM 0xEA /* Set stream mode */
+#define GPM_AUX_GET_DATA 0xEB /* Read data: ACK + 3 byte movement pack */
+#define GPM_AUX_RESET_WRAP 0xEC /* From wrap mode to previous */
+#define GPM_AUX_SET_WRAP 0xEE /* Set wrap mode */
+#define GPM_AUX_SET_REMOTE 0xF0 /* Set remote mode */
#define GPM_AUX_SET_SAMPLE 0xF3 /* Set sample rate */
#define GPM_AUX_ENABLE_DEV 0xF4 /* Enable aux device */
#define GPM_AUX_DISABLE_DEV 0xF5 /* Disable aux device */
+#define GPM_AUX_DEFAULTS 0xF6 /* Reset to defaults */
+#define GPM_AUX_RESEND 0xFE /* Resend last pack */
#define GPM_AUX_RESET 0xFF /* Reset aux device */
#define GPM_AUX_ACK 0xFA /* Command byte ACK. */
++++++ gpm-ps2_read.patch ++++++
Index: src/daemon/getmousedata.c
===================================================================
--- src/daemon/getmousedata.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/daemon/getmousedata.c 2010-09-07 19:18:52.107824882 +0200
@@ -70,7 +70,7 @@ char *getMouseData(int fd, Gpm_Type *typ
if((i=(which_mouse->m_type)->packetlen-howmany)) /* still to get */
do {
- j = read(fd,edata-i,i); /* edata is pointer just after data */
+ j = read(fd,edata-i,howmany); /* edata is pointer just after data */
if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep && j > 0)
write(fifofd, edata-i, j);
i -= j;
++++++ gpm-ps2_reconnection.patch ++++++
Index: src/mice.c
===================================================================
--- src/mice.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/mice.c 2010-09-08 18:38:24.516205731 +0200
@@ -2372,116 +2372,116 @@ Gpm_Type mice[]={
{"mman", "The \"MouseMan\" and similar devices (3/4 bytes per packet).",
"Mouseman", M_mman, I_serial, CS7 | STD_FLG, /* first */
- {0x40, 0x40, 0x40, 0x00}, 3, 1, 1, 0, 0},
+ {0x40, 0x40, 0x40, 0x00}, 3, 1, 1, 0, 0, 0},
{"ms", "The original ms protocol, with a middle-button extension.",
"", M_ms, I_serial, CS7 | STD_FLG,
- {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0},
+ {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0, 0},
{"acecad", "Acecad tablet absolute mode(Sumagrapics MM-Series mode)",
"", M_summa, I_summa, STD_FLG,
- {0x80, 0x80, 0x00, 0x00}, 7, 1, 0, 1, 0},
+ {0x80, 0x80, 0x00, 0x00}, 7, 1, 0, 1, 0, 0},
{"bare", "Unadorned ms protocol. Needed with some 2-buttons mice.",
"Microsoft", M_bare, I_serial, CS7 | STD_FLG,
- {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0},
+ {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0, 0},
{"bm", "Micro$oft busmice and compatible devices.",
"BusMouse", M_bm, I_empty, STD_FLG, /* bm is sun */
- {0xf8, 0x80, 0x00, 0x00}, 3, 3, 0, 0, 0},
+ {0xf8, 0x80, 0x00, 0x00}, 3, 3, 0, 0, 0, 0},
{"brw", "Fellowes Browser - 4 buttons (and a wheel) (dual protocol?)",
"", M_brw, I_pnp, CS7 | STD_FLG,
- {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, 0},
+ {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, 0, 0},
{"cal", "Calcomp UltraSlate",
"", M_calus, I_calus, CS8 | CSTOPB | STD_FLG,
- {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 1, 0},
+ {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 1, 0, 0},
{"calr", "Calcomp UltraSlate - relative mode",
"", M_calus_rel, I_calus, CS8 | CSTOPB | STD_FLG,
- {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 0, 0},
+ {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 0, 0, 0},
{"etouch", "EloTouch touch-screens (only button-1 events, by now)",
"", M_etouch, I_etouch, STD_FLG,
- {0xFF, 0x55, 0xFF, 0x54}, 7, 1, 0, 1, NULL},
+ {0xFF, 0x55, 0xFF, 0x54}, 7, 1, 0, 1, NULL, 0},
#ifdef HAVE_LINUX_INPUT_H
{"evdev", "Linux Event Device",
"", M_evdev, I_empty, STD_FLG,
- {0x00, 0x00, 0x00, 0x00} , 16, 16, 0, 0, NULL},
+ {0x00, 0x00, 0x00, 0x00} , 16, 16, 0, 0, NULL, 0},
#endif /* HAVE_LINUX_INPUT_H */
{"exps2", "IntelliMouse Explorer (ps2) - 3 buttons, wheel unused",
"ExplorerPS/2", M_imps2, I_exps2, STD_FLG,
- {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0},
+ {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0, 0},
#ifdef HAVE_LINUX_JOYSTICK_H
{"js", "Joystick mouse emulation",
"Joystick", M_js, NULL, 0,
- {0xFC, 0x00, 0x00, 0x00}, 12, 12, 0, 0, 0},
+ {0xFC, 0x00, 0x00, 0x00}, 12, 12, 0, 0, 0, 0},
#endif
{"genitizer", "\"Genitizer\" tablet, in relative mode.",
"", M_geni, I_serial, CS8|PARENB|PARODD,
- {0x80, 0x80, 0x00, 0x00}, 3, 1, 0, 0, 0},
+ {0x80, 0x80, 0x00, 0x00}, 3, 1, 0, 0, 0, 0},
{"gunze", "Gunze touch-screens (only button-1 events, by now)",
"", M_gunze, I_gunze, STD_FLG,
- {0xF9, 0x50, 0xF0, 0x30}, 11, 1, 0, 1, NULL},
+ {0xF9, 0x50, 0xF0, 0x30}, 11, 1, 0, 1, NULL, 0},
{"imps2","Microsoft Intellimouse (ps2)-autodetect 2/3 buttons,wheel unused",
"", M_imps2, I_imps2, STD_FLG,
- {0xC0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, R_imps2},
+ {0xC0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, R_imps2, 1},
{"logi", "Used in some Logitech devices (only serial).",
"Logitech", M_logi, I_logi, CS8 | CSTOPB | STD_FLG,
- {0xe0, 0x80, 0x80, 0x00}, 3, 3, 0, 0, 0},
+ {0xe0, 0x80, 0x80, 0x00}, 3, 3, 0, 0, 0, 0},
{"logim", "Turn logitech into Mouse-Systems-Compatible.",
"", M_logimsc, I_serial, CS8 | CSTOPB | STD_FLG,
- {0xf8, 0x80, 0x00, 0x00}, 5, 1, 0, 0, 0},
+ {0xf8, 0x80, 0x00, 0x00}, 5, 1, 0, 0, 0, 0},
{"mm", "MM series. Probably an old protocol...",
"MMSeries", M_mm, I_serial, CS8 | PARENB|PARODD | STD_FLG,
- {0xe0, 0x80, 0x80, 0x00}, 3, 1, 0, 0, 0},
+ {0xe0, 0x80, 0x80, 0x00}, 3, 1, 0, 0, 0, 0},
{"ms3", "Microsoft Intellimouse (serial) - 3 buttons, wheel unused",
"", M_ms3, I_pnp, CS7 | STD_FLG,
- {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, R_ms3},
+ {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, R_ms3, 0},
{"ms+", "Like 'ms', but allows dragging with the middle button.",
"", M_ms_plus, I_serial, CS7 | STD_FLG,
- {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0},
+ {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0, 0},
{"ms+lr", "'ms+', but you can reset m by pressing lr (see man page).",
"", M_ms_plus_lr, I_serial, CS7 | STD_FLG,
- {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0},
+ {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0, 0},
{"msc", "Mouse-Systems-Compatible (5bytes). Most 3-button mice.",
"MouseSystems", M_msc, I_serial, CS8 | CSTOPB | STD_FLG,
- {0xf8, 0x80, 0x00, 0x00}, 5, 1, 0, 0, R_msc},
+ {0xf8, 0x80, 0x00, 0x00}, 5, 1, 0, 0, R_msc, 0},
{"mtouch", "MicroTouch touch-screens (only button-1 events, by now)",
"", M_mtouch, I_mtouch, STD_FLG,
- {0x80, 0x80, 0x80, 0x00}, 5, 1, 0, 1, NULL},
+ {0x80, 0x80, 0x80, 0x00}, 5, 1, 0, 1, NULL, 0},
{"ncr", "Ncr3125pen, found on some laptops",
"", M_ncr, NULL, STD_FLG,
- {0x08, 0x08, 0x00, 0x00}, 7, 7, 0, 1, 0},
+ {0x08, 0x08, 0x00, 0x00}, 7, 7, 0, 1, 0, 0},
{"netmouse","Genius NetMouse (ps2) - 2 buttons and 2 buttons 'up'/'down'.",
"", M_netmouse, I_netmouse, CS7 | STD_FLG,
- {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0},
+ {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0, 1},
{"pnp", "Plug and pray. New mice may not run with '-t ms'.",
"", M_bare, I_pnp, CS7 | STD_FLG,
- {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0},
+ {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0, 0},
{"ps2", "Busmice of the ps/2 series. Most busmice, actually.",
"PS/2", M_ps2, I_ps2, STD_FLG,
- {0xc0, 0x00, 0x00, 0x00}, 3, 1, 0, 0, R_ps2},
+ {0xc0, 0x00, 0x00, 0x00}, 3, 1, 0, 0, R_ps2, 1},
{"sun", "'msc' protocol, but only 3 bytes per packet.",
"", M_sun, I_serial, CS8 | CSTOPB | STD_FLG,
- {0xf8, 0x80, 0x00, 0x00}, 3, 1, 0, 0, R_sun},
+ {0xf8, 0x80, 0x00, 0x00}, 3, 1, 0, 0, R_sun, 0},
{"summa", "Summagraphics or Genius tablet absolute mode(MM-Series)",
"", M_summa, I_summa, STD_FLG,
- {0x80, 0x80, 0x00, 0x00}, 5, 1, 0, 1, R_summa},
+ {0x80, 0x80, 0x00, 0x00}, 5, 1, 0, 1, R_summa, 0},
{"syn", "The \"Synaptics\" serial TouchPad.",
"synaptics", M_synaptics_serial, I_serial, CS7 | STD_FLG,
- {0x40, 0x40, 0x40, 0x00}, 6, 6, 1, 0, 0},
+ {0x40, 0x40, 0x40, 0x00}, 6, 6, 1, 0, 0, 0},
{"synps2", "The \"Synaptics\" PS/2 TouchPad",
"synaptics_ps2", M_synaptics_ps2, I_synps2, STD_FLG,
- {0x80, 0x80, 0x00, 0x00}, 6, 1, 1, 0, 0},
+ {0x80, 0x80, 0x00, 0x00}, 6, 1, 1, 0, 0, 1},
{"twid", "Twidddler keyboard",
"", M_twid, I_twid, CS8 | STD_FLG,
- {0x80, 0x00, 0x80, 0x80}, 5, 1, 0, 0, 0},
+ {0x80, 0x00, 0x80, 0x80}, 5, 1, 0, 0, 0, 0},
{"vsxxxaa", "The DEC VSXXX-AA/GA serial mouse on DEC workstations.",
"", M_vsxxx_aa, I_serial, CS8 | PARENB | PARODD | STD_FLG,
- {0xe0, 0x80, 0x80, 0x00}, 3, 1, 0, 0, 0},
+ {0xe0, 0x80, 0x80, 0x00}, 3, 1, 0, 0, 0, 0},
{"wacom","Wacom Protocol IV Tablets: Pen+Mouse, relative+absolute mode",
"", M_wacom, I_wacom, STD_FLG,
- {0x80, 0x80, 0x80, 0x00}, 7, 1, 0, 0, 0},
+ {0x80, 0x80, 0x80, 0x00}, 7, 1, 0, 0, 0, 0},
{"wp", "Genius WizardPad tablet",
"wizardpad", M_wp, I_wp, STD_FLG,
- {0xFA, 0x42, 0x00, 0x00}, 10, 1, 0, 1, 0},
+ {0xFA, 0x42, 0x00, 0x00}, 10, 1, 0, 1, 0, 0},
{"", "",
"", NULL, NULL, 0,
- {0x00, 0x00, 0x00, 0x00}, 0, 0, 0, 0, 0}
+ {0x00, 0x00, 0x00, 0x00}, 0, 0, 0, 0, 0, 0}
};
/*------------------------------------------------------------------------*/
Index: src/daemon/getmousedata.c
===================================================================
--- src/daemon/getmousedata.c.orig 2010-09-08 18:11:41.925698527 +0200
+++ src/daemon/getmousedata.c 2010-09-08 18:39:50.210572313 +0200
@@ -33,25 +33,58 @@
* fetch the actual device data from the mouse device, dependent on
* what Gpm_Type is being passed.
*-------------------------------------------------------------------*/
-char *getMouseData(int fd, Gpm_Type *type, int kd_mode)
+char *getMouseData(int fd, Gpm_Type *type, int kd_mode,
+ unsigned char *save_byte , int *is_save_byte, int *restart)
{
static unsigned char data[32]; /* quite a big margin :) */
char *edata=data+type->packetlen;
int howmany=type->howmany;
+ int preread;
int i,j;
/*....................................... read and identify one byte */
if (read(fd, data, howmany)!=howmany) {
- if (opt_test) exit(0);
- gpm_report(GPM_PR_ERR,GPM_MESS_READ_FIRST, strerror(errno));
- return NULL;
+ preread = 0;
+ if (*is_save_byte) {
+ /* one byte is saved, howmany must be 1 otherwise this
+ byte hasn't been saved */
+ data[0] = *save_byte;
+ *is_save_byte = 0;
+ preread = 1;
+ } else {
+ if ((preread = read(fd, data, howmany))!=howmany) {
+ if (opt_test) exit(0);
+ gpm_report(GPM_PR_ERR,GPM_MESS_READ_FIRST, strerror(errno));
+ return NULL;
+ }
+ }
+ }
+
+ /* try to find sequence AA 00 which is generated by kernel-2.4.9 or higher
+ when PS/2 mouse was replugged */
+ if (((which_mouse->m_type)->isPS2 == 1) && (data[0] == 0xaa)) {
+ if (preread == 1) {
+ // read second byte
+ if (read(fd, &(data[1]),1) == 1)
+ preread += 1;
+ }
+ if ((preread >= 2) && (data[1] == 0x0)) {
+ gpm_report(GPM_PR_DEBUG,GPM_MESS_REPLUGGED);
+ *restart = 1;
+ return NULL;
+ }
}
if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep)
write(fifofd, data, howmany);
if ((data[0]&((which_mouse->m_type)->proto)[0]) != ((which_mouse->m_type)->proto)[1]) {
+ if (preread > howmany) {
+ /* second byte was involuntary preread in test for PS/2 replugging */
+ *save_byte = data[1];
+ *is_save_byte = 1;
+ }
if ((which_mouse->m_type)->getextra == 1) {
data[1]=GPM_EXTRA_MAGIC_1; data[2]=GPM_EXTRA_MAGIC_2;
gpm_report(GPM_PR_DEBUG,GPM_EXTRA_DATA,data[0]);
@@ -68,13 +101,20 @@ char *getMouseData(int fd, Gpm_Type *typ
* tried ps2 with the original selection package, which called usleep()
*/
- if((i=(which_mouse->m_type)->packetlen-howmany)) /* still to get */
+ if((i=(which_mouse->m_type)->packetlen-preread) > 0) { /* still to get */
do {
j = read(fd,edata-i,howmany); /* edata is pointer just after data */
if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep && j > 0)
write(fifofd, edata-i, j);
i -= j;
} while (i && j);
+ } else {
+ if (preread > (which_mouse->m_type)->packetlen) {
+ /* second byte was involuntary preread in test for PS/2 replugging */
+ *save_byte = data[1];
+ *is_save_byte = 1;
+ }
+ }
if (i) {
gpm_report(GPM_PR_ERR,GPM_MESS_READ_REST, strerror(errno));
Index: src/daemon/gpm.c
===================================================================
--- src/daemon/gpm.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/daemon/gpm.c 2010-09-08 18:38:23.256288409 +0200
@@ -73,7 +73,8 @@ struct mouse_features mouse_table[3] = {
DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP,
(char *)NULL /* extra */,
(Gpm_Type *)NULL,
- -1
+ -1,
+ 0, 0 /* save byte, is_save_byte */
}
};
struct mouse_features *which_mouse;
Index: src/daemon/old_main.c
===================================================================
--- src/daemon/old_main.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/daemon/old_main.c 2010-09-08 19:34:22.279958939 +0200
@@ -37,6 +37,38 @@
#define max(a,b) ((a)>(b) ? (a) : (b))
#endif
+static inline void initMouse(int i, int *fd, int *maxfd)
+{
+ which_mouse=mouse_table+i; /* used to access options */
+
+ if (!(which_mouse->opt_dev))
+ gpm_report(GPM_PR_OOPS,GPM_MESS_NEED_MDEV);
+
+ if(!strcmp((which_mouse->opt_dev),"-"))
+ *fd=0; /* use stdin */
+ else if( (*fd=open((which_mouse->opt_dev),O_RDWR | O_NDELAY)) < 0)
+ gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,(which_mouse->opt_dev));
+
+ /* and then reset the flag */
+ fcntl(*fd,F_SETFL,fcntl(*fd,F_GETFL) & ~O_NDELAY);
+
+ /* create argc and argv for this device */
+ mouse_argv[i] = build_argv((which_mouse->opt_type),
+ (which_mouse->opt_options),
+ &mouse_argc[i], ',');
+
+ /* init the device, and use the return value as new mouse type */
+ if ((which_mouse->m_type)->init)
+ (which_mouse->m_type)=((which_mouse->m_type)->init)(*fd, (which_mouse->m_type)->flags,
+ (which_mouse->m_type),
+ mouse_argc[i], mouse_argv[i]);
+
+ if (!(which_mouse->m_type)) gpm_report(GPM_PR_OOPS,GPM_MESS_MOUSE_INIT);
+
+ which_mouse->fd=*fd;
+ *maxfd=max(*fd, *maxfd);
+}
+
int old_main()
{
@@ -48,30 +80,8 @@ int old_main()
int pending;
Gpm_Event event;
- for (i = 1; i <= 1+opt_double; i++) {
- which_mouse=mouse_table+i; /* used to access options */
-
- if (!(which_mouse->opt_dev)) gpm_report(GPM_PR_OOPS,GPM_MESS_NEED_MDEV);
-
- if(!strcmp((which_mouse->opt_dev),"-")) fd=0; /* use stdin */
- else if( (fd=open((which_mouse->opt_dev),O_RDWR | O_NDELAY)) < 0)
- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,(which_mouse->opt_dev));
-
- /* and then reset the flag */
- fcntl(fd,F_SETFL,fcntl(fd,F_GETFL) & ~O_NDELAY);
-
- /* create argc and argv for this device */
- mouse_argv[i] = build_argv((which_mouse->opt_type), (which_mouse->opt_options), &mouse_argc[i], ',');
-
- /* init the device, and use the return value as new mouse type */
- if ((which_mouse->m_type)->init)
- (which_mouse->m_type)=((which_mouse->m_type)->init)(fd, (which_mouse->m_type)->flags, (which_mouse->m_type), mouse_argc[i],
- mouse_argv[i]);
- if (!(which_mouse->m_type)) gpm_report(GPM_PR_OOPS,GPM_MESS_MOUSE_INIT);
-
- which_mouse->fd=fd;
- maxfd=max(fd, maxfd);
- }
+ for (i = 1; i <= 1+opt_double; i++)
+ initMouse(i, &fd, &maxfd);
/*....................................... catch interesting signals */
@@ -184,10 +194,14 @@ int old_main()
*/
for (i=1; i <= 1+opt_double; i++) {
+ int rc;
which_mouse=mouse_table+i; /* used to access options */
if (FD_ISSET(which_mouse->fd,&selSet)) {
FD_CLR(which_mouse->fd,&selSet); pending--;
- if (processMouse(which_mouse->fd, &event, (which_mouse->m_type), kd_mode))
+ rc = processMouse(which_mouse->fd, &event, (which_mouse->m_type),
+ kd_mode, &(which_mouse->save_byte),
+ &(which_mouse->is_save_byte));
+ if (rc > 0) {
/* pass it to the client, if any
* or to the default handler, if any
* or to the selection handler
@@ -196,7 +210,15 @@ int old_main()
(cinfo[event.vc] && do_client(cinfo[event.vc], &event))
|| (cinfo[0] && do_client(cinfo[0], &event))
|| do_selection(&event);
+ } else if (rc == -1) {
+ /* try to reinitialise the mouse */
+ FD_CLR(which_mouse->fd, &selSet);
+ close(which_mouse->fd);
+ initMouse(i, &fd, &maxfd);
+ FD_CLR(which_mouse->fd, &selSet);
+ which_mouse->is_save_byte=0;
}
+ }
}
/*..................... got connection, process it */
Index: src/daemon/processmouse.c
===================================================================
--- src/daemon/processmouse.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/daemon/processmouse.c 2010-09-08 18:11:42.105686598 +0200
@@ -40,7 +40,8 @@
(t2.tv_usec-t1.tv_usec)/1000)
-int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, int kd_mode)
+int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, int kd_mode,
+ unsigned char *save_byte, int *is_save_byte)
{
char *data;
static int fine_dx,
@@ -55,6 +56,7 @@ int processMouse(int fd, Gpm_Event *even
static struct timeval tv1={0,0}, tv2; /* tv1==0: first click is single */
static struct timeval timeout={0,0};
fd_set fdSet;
+ int restart;
oldT = event->type;
@@ -78,9 +80,12 @@ int processMouse(int fd, Gpm_Event *even
FD_SET(fd,&fdSet);
do { /* cluster loop */
- if(((data=getMouseData(fd, (which_mouse->m_type), kd_mode)) == NULL)
+ restart = 0;
+ if(((data=getMouseData(fd, (which_mouse->m_type), kd_mode,
+ save_byte,is_save_byte,&restart)) == NULL)
|| ((*((which_mouse->m_type)->fun))(&nEvent,data)==-1) ) {
-
+
+ if (restart) return -1;
if (!i) {
return 0;
} else {
Index: src/headers/daemon.h
===================================================================
--- src/headers/daemon.h.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/headers/daemon.h 2010-09-08 19:26:01.901761337 +0200
@@ -76,6 +76,7 @@ typedef struct Gpm_Type {
/* repeat this event into fd */
int (*repeat_fun)(Gpm_Event *state, int fd);
+ int isPS2; /* 1 for PS/2 mouses, 0 otherwise */
} Gpm_Type;
/* this structure is used to hide the dual-mouse stuff */
@@ -96,6 +97,8 @@ struct mouse_features {
char *opt_options; /* extra textual configuration */
Gpm_Type *m_type;
int fd;
+ unsigned char save_byte;
+ int is_save_byte;
};
/*************************************************************************
@@ -197,7 +200,9 @@ int do_selection(Gpm_Event *event);
void get_console_size(Gpm_Event *ePtr);
int get_data(Gpm_Connect *where, int whence);
-char *getMouseData(int fd, Gpm_Type *type, int kd_mode);
+char *getMouseData(int fd, Gpm_Type *type, int kd_mode,
+ unsigned char *save_byte , int *is_save_byte,
+ int *restart);
int getsym(const unsigned char *p0, unsigned char *res);
void gpm_exited(void);
@@ -207,7 +212,8 @@ int open_console(const int mode);
int old_main();
int processConn(int fd);
-int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, int kd_mode);
+int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, int kd_mode,
+ unsigned char *save_byte, int *is_save_byte);
int processRequest(Gpm_Cinfo *ci, int vc);
int processSpecial(Gpm_Event *event);
Index: src/headers/message.h
===================================================================
--- src/headers/message.h.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/headers/message.h 2010-09-08 18:38:24.516205731 +0200
@@ -65,6 +65,7 @@
#define GPM_MESS_VERSION "gpm " PACKAGE_VERSION
#define GPM_MESS_STARTED "Started gpm successfully. Entered daemon mode."
#define GPM_MESS_KILLED "Killed gpm(%d)."
+#define GPM_MESS_REPLUGGED "Mouse was replugged"
#define GPM_MESS_SKIP_DATA "Skipping a data packet (?)"
#define GPM_MESS_DATA_4 "Data %02x %02x %02x (%02x)"
#define GPM_MESS_NO_MAGIC "No magic"
++++++ gpm-quiet_libgpm.patch ++++++
Index: src/lib/report-lib.c
===================================================================
--- src/lib/report-lib.c.orig 2010-09-08 13:35:23.166173284 +0200
+++ src/lib/report-lib.c 2010-09-08 13:36:23.207409061 +0200
@@ -26,6 +26,7 @@
void gpm_report(int line, char *file, int stat, char *text, ... )
{
+#ifndef QUIET_LIBGPM
char *string = NULL;
int log_level;
va_list ap;
@@ -57,5 +58,7 @@ void gpm_report(int line, char *file, in
va_end(ap);
+#endif /* QUIET_LIBGPM */
+
if(stat == GPM_STAT_OOPS) exit(1); /* may a lib function call exit ???? */
}
++++++ gpm-silitek.patch ++++++
++++ 1121 lines (skipped)
++++++ gpm-syn_conf.patch ++++++
--- conf/gpm-syn.conf
+++ conf/gpm-syn.conf
@@ -1,49 +1,107 @@
+/* generated from src/synaptics.c, gpm-1.20.1 */
/* enabling configuration parameters */
-[edge_motion_enabled] TRUE
-[edge_motion_speed_enabled] TRUE
-[corner_taps_enabled] TRUE
-[tap_gesture_enabled] TRUE
-[pressure_speed_enabled] TRUE
-[tossing_enabled] TRUE
-[does_toss_use_static_speed] TRUE
-/* pressure induced speed related configuration parameters */
-[low_pressure] 60
-[speed_up_pressure] 60
-[pressure_factor] 0.10
-[standard_speed_factor] 0.10
-/* toss/catch related parameters */
-[min_toss_time] 100
-[max_toss_time] 300
-[prevent_toss_time] 300
-[min_toss_dist] 2
-[static_toss_speed] 70
-[toss_speed_factor] 0.5
-/* edge motion related configuration parameters */
-[edge_speed] 20
-/* corner tap actions */
-[upper_left_action] 0 (none)
-[upper_right_action] 2 (middle)
-[lower_left_action] 0 (none)
-[lower_right_action] 3 (right)
-/* wmode parameters */
-[wmode_enabled] TRUE
-[drag_lock_enabled] FALSE
-[finger_threshold] 30
-[tap_lower_limit] 5
-[tap_upper_limit] 200
-[tap_range] 100
-[tap_interval] 200
-[pads_tap_interval] 8
-[multiple_tap_delay] 30
-[palm_detect_enabled] TRUE
-[palm_detect_level] 12
-[multi_finger_tap_enable] TRUE
-[multi_finger_stop_enabled] TRUE
-[multi_finger_stop_delay] 8
- /* Additional options */
-[touch_pad_enabled] TRUE
-[stick_enabled] TRUE
-[scrolling_enabled] TRUE
-[scrolling_edge] 2
-[auto_scrolling_enabled] TRUE
-
+[edge_motion_enabled] TRUE
+[edge_motion_speed_enabled] TRUE
+[corner_taps_enabled] TRUE
+[tap_gesture_enabled] TRUE
+[pressure_speed_enabled] TRUE
+[tossing_enabled] TRUE
+[does_toss_use_static_speed] TRUE
+[tap_hold_edge_motion_enabled] TRUE
+/* pressure induced speed related configuration parameters */
+[low_pressure] 60
+[speed_up_pressure] 60
+[pressure_factor] 0.05
+[standard_speed_factor] 0.08
+/* toss/catch related parameters */
+[min_toss_time] 100
+[max_toss_time] 300
+[prevent_toss_time] 300
+[min_toss_dist] 2
+[static_toss_speed] 70
+[toss_speed_factor] 0.5
+/* edge motion related configuration parameters */
+[x_min_center] 1632
+[x_max_center] 5312
+[y_min_center] 1408
+[y_max_center] 4108
+[edge_speed] 20
+/* use wmode */
+[wmode_enabled] TRUE
+[drag_lock_enabled] TRUE
+[finger_threshold] 30
+[tap_lower_limit] 5
+[tap_upper_limit] 200
+[tap_range] 100
+[tap_interval] 200
+[multiple_tap_delay] 30
+[pads_tap_interval] 8
+/* Additional wmode parameters */
+[palm_detect_enabled] TRUE
+[palm_detect_level] 12
+[multi_finger_tap_enable] TRUE
+[multi_finger_stop_enabled] TRUE
+[multi_finger_stop_delay] 8
+[fake_finger_layer_enabled] 1
+/* Additional options*/
+/* Values for [scrolling_edge]:
+ LEFT_EDGE 0x01
+ RIGHT_EDGE 0x02
+ TOP_EDGE 0x04
+ BOTTOM_EDGE 0x08
+ UPPER_LEFT_CORNER (LEFT_EDGE | TOP_EDGE)
+ LOWER_LEFT_CORNER (LEFT_EDGE | BOTTOM_EDGE)
+ UPPER_RIGHT_CORNER (RIGHT_EDGE | TOP_EDGE)
+ LOWER_RIGHT_CORNER (RIGHT_EDGE | BOTTOM_EDGE) */
+[touchpad_enabled] TRUE
+[stick_enabled] TRUE
+[stick_pressure_enabled] FALSE
+[four_way_button_enabled] TRUE
+[four_way_button_is_mouse] TRUE
+[scrolling_enabled] TRUE
+[auto_scrolling_enabled] TRUE
+[scrolling_edge] 0x02
+[scrolling_speed] 10
+[scrolling_button_factor] 0.5
+[auto_scrolling_factor] 2.0
+/* Action id's:
+ No_Action = 0
+ Left_Button_Action = 1
+ Middle_Button_Action = 2
+ Right_Button_Action = 3
+ Fourth_Button_Action = 4
+ Up_Button_Action = 5
+ Down_Button_Action = 6
+ Turn_On_Off_Action = 7
+ Debug_On_Off_Action = 8
+ Reset_Touchpad_Action = 9
+ Toggle_Four_Way_Button_Action = 10
+ Toggle_Stick_Pressure_Action = 11
+ Toggle_Scrolling_Action = 12
+ Left_Double_Click_Action = 13
+*/
+/* corner tap actions */
+[upper_left_action] 0
+[lower_left_action] 0
+[upper_right_action] 2
+[lower_right_action] 3
+/* no. of fingers tap actions */
+[one_finger_tap_action] 1
+[two_fingers_tap_action] 3
+[three_fingers_tap_action] 2
+/* normal button actions */
+[left_button_action] 1
+[middle_button_action] 2
+[right_button_action] 3
+[fourth_button_action] 4
+[up_button_action] 5
+[down_button_action] 6
+/* 4 way button actions */
+[four_way_left_button_action] 2
+[four_way_right_button_action] 4
+[four_way_up_button_action] 5
+[four_way_down_button_action] 6
+/* Synaptic Stick (passthrugh,stick) actions */
+[stick_left_button_action] 1
+[stick_middle_button_action] 2
+[stick_right_button_action] 3
++++++ gpm-use_getdtablesize.patch ++++++
Index: src/daemon/processspecial.c
===================================================================
--- src/daemon/processspecial.c.orig 2009-02-09 10:58:53.000000000 +0100
+++ src/daemon/processspecial.c 2010-09-08 17:41:17.533664061 +0200
@@ -157,7 +157,7 @@ int processSpecial(Gpm_Event *event)
open(option.consolename,O_WRONLY); /* stdout */
dup(1); /* stderr */
int open_max = sysconf(_SC_OPEN_MAX);
- if (open_max == -1) open_max = 1024;
+ if (open_max == -1) open_max = getdtablesize();
for (i=3;i return is requested
+ 1 -> exit(1) is requested
+ 2 -> _exit(1) is requested */
va_start(ap,text);
va_copy(ap3, ap);
@@ -129,7 +132,7 @@ void gpm_report(int line, char *file, in
vfprintf(stderr,text,ap);
fprintf(stderr,"\n");
- exit(1); /* we should have a oops()-function,but this works,too*/
+ exit_request = 1; /* we should have an oops()-function,but this works,too*/
break;
}
break; /* startup sequence */
@@ -188,7 +191,7 @@ void gpm_report(int line, char *file, in
vfprintf(stderr,text,ap);
fprintf(stderr,"\n");
- _exit(1); /* we are the fork()-child */
+ exit_request = 2; /* we are the fork()-child */
break;
}
break; /* running gpm */
@@ -216,7 +219,7 @@ void gpm_report(int line, char *file, in
vfprintf(console,text,ap);
fprintf(console,"\n");
- if(stat == GPM_STAT_OOPS) exit(1);
+ if(stat == GPM_STAT_OOPS) exit_request = 1;
break;
} /* switch for current modus */
@@ -226,6 +229,12 @@ void gpm_report(int line, char *file, in
#ifdef HAVE_VSYSLOG
va_end(ap2);
#endif
+ if (exit_request == 2)
+ _exit(1);
+ if (exit_request == 1)
+ exit(1);
+
+ return;
} /* gpm_report */
++++++ gpm-verbosity.patch ++++++
Index: src/prog/gpm-root.y
===================================================================
--- src/prog/gpm-root.y.orig 2010-09-08 17:00:51.668569297 +0200
+++ src/prog/gpm-root.y 2010-09-08 17:00:52.032543941 +0200
@@ -870,7 +870,6 @@ int usage(void)
" -m <number-or-name> modifier to use\n"
" -u inhibit user configuration files\n"
" -D don't auto-background and run as daemon\n"
- " -V <verbosity-delta> increase amount of logged messages\n"
);
return 1;
Index: src/daemon/cmdline.c
===================================================================
--- src/daemon/cmdline.c.orig 2010-09-08 17:00:51.788560939 +0200
+++ src/daemon/cmdline.c 2010-09-08 17:01:43.769151777 +0200
@@ -78,8 +78,9 @@ void cmdline(int argc, char **argv)
case 'u': option.autodetect = 1; break;
case 'T': opt_test++; break;
case 'v': printf(GPM_MESS_VERSION "\n"); exit(0);
- case '2': (which_mouse->opt_three) = -1; break;
- case '3': (which_mouse->opt_three) = 1; break;
+ case 'V': break; /* gpm_debug_level not supported anymore */
+ case '2': (which_mouse->opt_three) = -1; break;
+ case '3': (which_mouse->opt_three) = 1; break;
default: exit(usage("commandline"));
}
}
Index: src/headers/message.h
===================================================================
--- src/headers/message.h.orig 2010-09-08 17:00:51.984547286 +0200
+++ src/headers/message.h 2010-09-08 17:00:53.060472330 +0200
@@ -98,8 +98,7 @@
" -t mouse-type sets mouse type (default '%s')\n" \
" Use a non-existent type (e.g. \"help\") to get a list\n" \
" -T test: read mouse, no clients\n" \
- " -v print version and exit\n" \
- " -V verbosity increase number of logged messages\n\n\n" \
+ " -v print version and exit\n\n\n" \
" Examples:\n\n" \
" gpm -m /dev/misc/psaux -t ps2 to start with a ps2 mouse\n" \
" gpm -m /dev/tts/0 -t mman to use mouse man on COM1\n\n"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org