[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#168794: - suggested solution and a patch



>On Tue, Mar 18, 2003 at 12:00:28PM +0100, Andreas Metzler wrote:
>> Branden, would you accept a patch[1] for Debian's packages of XFree86
>> to include this driver? I can give it a shot.
>>            cu andreas
>> [1] I have not tried to build it yet, but afaict it wouldn't be a
>> real patch but a aimple addition, the driver simply needs internal
>> X headers to build.
>                                                                                >
>Let me think on this.  I'm pondering the pros and cons of putting a
>GPL'ed driver into Debian's XFree86 packages, which contain no GPL'ed
>code apart from some independent, standalone stuff.

As distributed at:

   http://tuxmobile.org/software/synaptics/synaptics-0.11.3.tar.gz

the driver builds in its own directory, separate from the XFree86
sourcetree, though it does need access to XFree86 source headers.  The
result is just a single binary driver file, synaptics_drv.o, which is
supposed to be placed in /usr/X11R6/lib/modules/input/.

The synaptics_drv.o file which is produced clearly falls under the GPL,
but I don't think that building it from the same source package as
XFree86 would cause the rest of the Debian Xfree86 binaries to be under
the GPL.

To make the legal situation even clearer, we could create a separate
"synaptics" source package with a build-depends on xfree86.  We could
then make xserver-xfree86 depend on the synaptics package.  Since the
interface for input modules is fairly stable, changes in xfree86 should
not require that synaptics be rebuilt nor should changes in synaptics
require that xfree86 be rebuilt.

xserver-xfree86 needs to depend on synaptics, I think, for the sake of
making configuration through dexconf simple.  I have attached suggested
patches to xserver-xfree86.config and the dexconf script in order to
allow this.  I would be happy to prepare either a separate synaptics
package or a patch to xfree86 which builds the synaptics driver,
whichever course you think is best.

It would be a very good thing for Debian to seamlessly support this
common piece of laptop hardware.

						Neil
--- xserver-xfree86.config.orig	2003-04-30 17:56:48.000000000 -0700
+++ xserver-xfree86.config	2003-04-30 18:00:14.000000000 -0700
@@ -903,7 +903,7 @@
 db_get xserver-xfree86/config/inputdevice/mouse/port
 case "$RET" in
   *psaux)
-    MOUSE_PROTOCOL_CHOICES="PS/2, ImPS/2, GlidePointPS/2, NetMousePS/2, NetScrollPS/2, ThinkingMousePS/2, MouseManPlusPS/2, ExplorerPS/2"
+    MOUSE_PROTOCOL_CHOICES="PS/2, ImPS/2, GlidePointPS/2, NetMousePS/2, NetScrollPS/2, ThinkingMousePS/2, MouseManPlusPS/2, ExplorerPS/2, Synaptics"
     DEFAULT_PROTOCOL="PS/2"
     ;;
   *ttyS*|*tts/*)
--- dexconf.orig	2003-04-30 18:02:00.000000000 -0700
+++ dexconf	2003-05-01 17:50:12.000000000 -0700
@@ -359,15 +359,32 @@
 
   printf "Section \"InputDevice\"\n" > "$DEXCONFTMPDIR/InputDeviceMouse"
   printf "\tIdentifier\t\"Configured Mouse\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
-  printf "\tDriver\t\t\"mouse\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+  if [ "$MOUSE_PROTOCOL" = "Synaptics" ]; then
+    printf "\tDriver\t\t\"synaptics\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+  else
+    printf "\tDriver\t\t\"mouse\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+  fi
   printf "\tOption\t\t\"CorePointer\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
   printf "\tOption\t\t\"Device\"\t\t\"$MOUSE_PORT\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
-  printf "\tOption\t\t\"Protocol\"\t\t\"$MOUSE_PROTOCOL\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
-  if [ -n "$DO_EMULATE3BUTTONS" ]; then
-    printf "\tOption\t\t\"Emulate3Buttons\"\t\"true\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
-  fi
-  if [ -n "$DO_ZAXISMAPPING" ]; then
-    printf "\tOption\t\t\"ZAxisMapping\"\t\t\"4 5\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+  if [ "$MOUSE_PROTOCOL" = "Synaptics" ]; then
+    printf "\tOption\t\t\"Edges\"\t\t\t\"1900 5400 1800 3900\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "\tOption\t\t\"Finger\"\t\t\"25 30\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "\tOption\t\t\"MaxTapTime\"\t\t\"20\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "\tOption\t\t\"MaxTapMove\"\t\t\"220\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "\tOption\t\t\"VertScrollDelta\"\t\"100\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "\tOption\t\t\"MinSpeed\"\t\t\"0.02\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "\tOption\t\t\"MaxSpeed\"\t\t\"0.18\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "\tOption\t\t\"AccelFactor\"\t\t\"0.0010\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "#\tOption\t\t\"Repeater\"\t\t\"/dev/ps2mouse\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    printf "#\tOption\t\t\"SHMConfig\"\t\t\"on\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+  else
+    printf "\tOption\t\t\"Protocol\"\t\t\"$MOUSE_PROTOCOL\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    if [ -n "$DO_EMULATE3BUTTONS" ]; then
+      printf "\tOption\t\t\"Emulate3Buttons\"\t\"true\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    fi
+    if [ -n "$DO_ZAXISMAPPING" ]; then
+      printf "\tOption\t\t\"ZAxisMapping\"\t\t\"4 5\"\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
+    fi
   fi
   printf "EndSection\n" >> "$DEXCONFTMPDIR/InputDeviceMouse"
 

Reply to: