Bug 146495 - [PATCH] x11-drivers/input-wacom: update for xorg-server-1.7.x
Summary: [PATCH] x11-drivers/input-wacom: update for xorg-server-1.7.x
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Martin Wilke
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-11 15:20 UTC by alex.deiter
Modified: 2010-07-10 11:08 UTC (History)
0 users

See Also:


Attachments
file.diff (13.54 KB, patch)
2010-05-11 15:20 UTC, alex.deiter
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description alex.deiter 2010-05-11 15:20:02 UTC
Please review proposed patch for input-wacom driver. Patch successfully tested on Lenovo X60 table with:

input-wacom-40.0.8.2.2_6 X.Org Wacom tablet driver and kernel module
xorg-server-1.7.5,1 X.Org X server and related programs

P.S. patch derived from xf86-input-wacom-0.10.6

Thanks a lot!

Fix: please review attached patch

Patch attached with submission follows:
How-To-Repeat: cd /usr/ports/x11-drivers/input-wacom && make install
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2010-05-11 15:20:11 UTC
Maintainer of x11-drivers/input-wacom,

Please note that PR ports/146495 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/146495

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2010-05-11 15:20:13 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 Martin Wilke freebsd_committer freebsd_triage 2010-05-12 03:08:35 UTC
Responsible Changed
From-To: freebsd-ports-bugs->miwi

I'll take it.
Comment 4 kamikaze 2010-05-12 07:51:44 UTC
I'm testing it. You'll probably get my thumbs up tomorrow.

Thanks for the submission.
Comment 5 kamikaze 2010-05-13 21:57:55 UTC
The following is your patch with some small modifications, mostly
dealing with portlint complaints.

Thank your for your contribution!

diff -Nur input-wacom.orig/Makefile input-wacom/Makefile
--- input-wacom.orig/Makefile	2010-05-13 22:00:01.000000000 +0200
+++ input-wacom/Makefile	2010-05-13 22:52:51.000000000 +0200
@@ -13,7 +13,6 @@
 		SF/linuxwacom/linuxwacom/${WACOM_VERSION}:linuxwacom
 DISTFILES=	${BSDWACOM}.tbz:bsdwacom \
 		${LINUXWACOM}.tar.bz2:linuxwacom
-EXTRACT_ONLY=	${BSDWACOM}.tbz
 
 MAINTAINER=	kamikaze@bsdforen.de
 COMMENT=	X.Org Wacom tablet driver and kernel module
@@ -23,6 +22,7 @@
 
 USE_GMAKE=	yes
 USE_RC_SUBR=	wacom
+USE_LDCONFIG=	no
 
 KMODDIR?=	/boot/modules
 XINPUTMODDIR=	lib/xorg/modules/input
@@ -44,20 +44,18 @@
 WACOM_VERSION=	0.8.2-2
 KLD_VERSION=	40
 
-.include <bsd.port.pre.mk>
+OPTIONS=	UWACOMKLD "Install USB kernel module (ignored on 8.x)" ${KMOD_SUPPORTED}
+
+.include <bsd.port.options.mk>
 
 .if ${OSVERSION} >= 800064
-OPTIONS=	UWACOMKLD "Install USB kernel module (not supported on 8.x)" Off
+KMOD_SUPPORTED=	Off
+.undef WITH_UWACOMKLD
 .else
-OPTIONS=	UWACOMKLD "Install USB kernel module (not supported on 8.x)" On
+KMOD_SUPPORTED=	On
 .endif
 
-.include <bsd.port.options.mk>
-
 .if defined(WITH_UWACOMKLD)
-.if ${OSVERSION} >= 800064
-BROKEN=		does not build with USB support
-.endif
 PLIST_SUB+=	UWACOMKLD="uwacom.ko"
 PORTTYPE=	usb
 .else
@@ -65,19 +63,18 @@
 PORTTYPE=	serial
 .endif
 
-BROKEN=		build failed
+post-patch:
+	@${LN} -s ../${LINUXWACOM} ${WRKDIR}/linuxwacom/
 
 do-configure:
-	@cd ${WRKDIR}/linuxwacom \
-		&& ${LN} -s ${DISTDIR}/${DIST_SUBDIR}/${LINUXWACOM}.tar.bz2 \
-		&& ${SETENV} ${MAKE_ENV} ./run_configure
+	@cd ${WRKDIR}/linuxwacom && ${SETENV} ${MAKE_ENV} ./run_configure
 
 do-build:
 .if defined(WITH_UWACOMKLD)
 	@cd ${WRKDIR}/uwacom \
 		&& ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS}
 .endif
-	@cd ${WRKDIR}/linuxwacom/${LINUXWACOM} \
+	@cd ${WRKDIR}/${LINUXWACOM} \
 		&& ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_ARGS}
 
 do-install:
@@ -87,7 +84,7 @@
 .endif
 	@${MKDIR} ${PREFIX}/${XINPUTMODDIR} ${PREFIX}/${MAN4DIR}
 	@cd ${WRKDIR}/linuxwacom/${LINUXWACOM}/src/util/ \
-		&& ${SETENV} ${MAKE_ENV} ${GMAKE} install
+		&& ${SETENV} ${MAKE_ENV} ${GMAKE} ${INSTALL_TARGET}
 	@${INSTALL} ${WRKDIR}/linuxwacom/${LINUXWACOM}/src/xdrv/wacom_drv.so \
 		${PREFIX}/${XINPUTMODDIR}/
 	@${INSTALL_MAN} ${WRKDIR}/linuxwacom/${LINUXWACOM}/src/wacom.4x.gz \
@@ -100,8 +97,8 @@
 	@cd ${WRKDIR}/linuxwacom \
 		&& ${SETENV} ${MAKE_ENV} PREFIX=${WRKDIR}/plist ./run_configure
 	@${MKDIR} ${WRKDIR}/plist
-	@cd ${WRKDIR}/linuxwacom/${LINUXWACOM}/src/util \
-		&& ${SETENV} ${MAKE_ENV} ${GMAKE} install
+	@cd ${WRKDIR}/${LINUXWACOM}/src/util \
+		&& ${SETENV} ${MAKE_ENV} ${GMAKE} ${INSTALL_TARGET}
 	@cd ${WRKDIR}/linuxwacom \
 		&& ${SETENV} ${MAKE_ENV} ./run_configure
 	@${FIND} ${WRKDIR}/plist/ -not -type d \
@@ -119,4 +116,4 @@
 	@${ECHO} "===>  Displaying pkg-message."
 	@${CAT} ${PKGMESSAGE}
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff -Nur input-wacom.orig/files/patch-linuxwacom-run_configure input-wacom/files/patch-linuxwacom-run_configure
--- input-wacom.orig/files/patch-linuxwacom-run_configure	2010-05-13 22:00:01.000000000 +0200
+++ input-wacom/files/patch-linuxwacom-run_configure	2010-05-13 22:45:55.000000000 +0200
@@ -1,17 +1,21 @@
---- linuxwacom/run_configure.orig	2009-01-21 11:26:52.000000000 +0100
-+++ linuxwacom/run_configure	2009-01-21 11:27:00.000000000 +0100
-@@ -1,7 +1,7 @@
+--- linuxwacom/run_configure.orig	2008-12-26 02:09:57.000000000 +0100
++++ linuxwacom/run_configure	2010-05-13 22:44:05.000000000 +0200
+@@ -1,10 +1,8 @@
  #!/bin/sh
  # $Id: run_configure 40 2008-12-26 01:08:35Z undo $
  
 -LINUXWACOM=0.8.2
 +LINUXWACOM=0.8.2-2
  
- rm -rf linuxwacom-${LINUXWACOM}
- tar xf linuxwacom-${LINUXWACOM}.tar.bz2
-@@ -14,5 +14,5 @@
+-rm -rf linuxwacom-${LINUXWACOM}
+-tar xf linuxwacom-${LINUXWACOM}.tar.bz2
+ mkdir linuxwacom-${LINUXWACOM}/src/util/asm
+ mkdir linuxwacom-${LINUXWACOM}/src/util/linux
+ mkdir linuxwacom-${LINUXWACOM}/src/xdrv/asm
+@@ -14,5 +12,5 @@
  cp files/types.h linuxwacom-${LINUXWACOM}/src/xdrv/asm
  cp files/input.h linuxwacom-${LINUXWACOM}/src/xdrv/linux
  cd linuxwacom-${LINUXWACOM}
 -./configure --with-linux=yes --with-tcl=/usr/local/include/tcl8.4 --with-tk=/usr/local/include/tk8.4 --prefix=${PREFIX} --enable-dlloader CFLAGS="-I/usr/local/include"
 +./configure --with-linux=yes --with-tcl=/usr/local/include/tcl8.4 --with-tk=/usr/local/include/tk8.4 --prefix=${PREFIX} --enable-dlloader CFLAGS="-I/usr/local/include -DWCM_XORG_XSERVER_1_6=true"
+ 
diff -Nur input-wacom.orig/files/patch-xorg-server-1.7 input-wacom/files/patch-xorg-server-1.7
--- input-wacom.orig/files/patch-xorg-server-1.7	1970-01-01 01:00:00.000000000 +0100
+++ input-wacom/files/patch-xorg-server-1.7	2010-05-13 22:00:07.000000000 +0200
@@ -0,0 +1,387 @@
+--- linuxwacom-0.8.2-2/src/xdrv/wcmCommon.c.orig	2009-01-19 21:58:37.000000000 +0300
++++ linuxwacom-0.8.2-2/src/xdrv/wcmCommon.c	2010-05-11 17:25:41.265742759 +0400
+@@ -19,6 +19,8 @@
+ 
+ #include "xf86Wacom.h"
+ #include "../include/Xwacom.h"
++#include <xkbsrv.h>
++#include <xf86_OSproc.h>
+ 
+ /*
+ #if XF86_VERSION_MAJOR < 4
+@@ -277,7 +279,7 @@
+ 				bsent = 0;
+ 
+ 				/* send all pressed buttons down */
+-				for (button=2; button<=MAX_BUTTONS; button++)
++				for (button=2; button<=WCM_MAX_BUTTONS; button++)
+ 				{
+ 					mask = 1 << (button-1);
+ 					if ( buttons & mask ) 
+@@ -302,7 +304,7 @@
+ 			else
+ 			{
+ 				bsent = 0;
+-				for (button=2; button<=MAX_BUTTONS; button++)
++				for (button=2; button<=WCM_MAX_BUTTONS; button++)
+ 				{
+ 					mask = 1 << (button-1);
+ 					if ((mask & priv->oldButtons) != (mask & buttons))
+@@ -333,7 +335,7 @@
+ 			priv->flags &= ~TPCBUTTONS_FLAG;
+ 
+ 			/* send all pressed buttons up */
+-			for (button=2; button<=MAX_BUTTONS; button++)
++			for (button=2; button<=WCM_MAX_BUTTONS; button++)
+ 			{
+ 				mask = 1 << (button-1);
+ 				if ((mask & priv->oldButtons) != (mask & buttons) || (mask & buttons) )
+@@ -356,7 +358,7 @@
+ 	}
+ 	else  /* normal buttons */
+ 	{
+-		for (button=1; button<=MAX_BUTTONS; button++)
++		for (button=1; button<=WCM_MAX_BUTTONS; button++)
+ 		{
+ 			mask = 1 << (button-1);
+ 			if ((mask & priv->oldButtons) != (mask & buttons))
+@@ -405,7 +407,11 @@
+ 	int i, j, alt_keysym = 0;
+ 
+ 	/* Now that we have the keycode look for key index */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++	KeySymsRec *ksr = XkbGetCoreMap(keydev);
++#else
+ 	KeySymsRec *ksr = &keydev->key->curKeySyms;
++#endif
+ 
+ 	for (i = ksr->minKeyCode; i <= ksr->maxKeyCode; i++)
+ 		if (ksr->map [(i - ksr->minKeyCode) * ksr->mapWidth] == keysym)
+@@ -443,11 +449,17 @@
+ 				xf86PostKeyboardEvent (keydev, j, 0);
+ 		}
+ 		else
+-			xf86Msg (X_WARNING, "Couldn't find key with code %08x on keyboard device %s\n",
+-					keysym, keydev->name);
++			xf86Msg (X_WARNING, "%s: Couldn't find key with code %08x on keyboard device %s\n",
++					keydev->name, keysym, keydev->name);
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++		xfree(ksr);
++#endif
+ 		return;
+ 	}
+ 	xf86PostKeyboardEvent (keydev, i, state);
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++	xfree(ksr);
++#endif
+ }
+ 
+ static int wcm_modifier [ ] =
+--- linuxwacom-0.8.2-2/src/xdrv/wcmConfig.c.orig	2009-01-19 21:58:37.000000000 +0300
++++ linuxwacom-0.8.2-2/src/xdrv/wcmConfig.c	2010-05-11 17:27:43.775135419 +0400
+@@ -136,15 +136,15 @@
+ 	priv->nPressCtrl [3] = 100;  /* pressure curve y1 */
+ 
+ 	/* Default button and expresskey values */
+-	for (i=0; i<MAX_BUTTONS; i++)
++	for (i=0; i<WCM_MAX_BUTTONS; i++)
+ 		priv->button[i] = IsPad (priv) ?
+-			(AC_BUTTON | (MAX_MOUSE_BUTTONS/2 + i + 1)) : (AC_BUTTON | (i + 1));
++			(AC_BUTTON | (WCM_MAX_MOUSE_BUTTONS/2 + i + 1)) : (AC_BUTTON | (i + 1));
+ 
+-	for (i=0; i<MAX_BUTTONS; i++)
++	for (i=0; i<WCM_MAX_BUTTONS; i++)
+ 		for (j=0; j<256; j++)
+ 			priv->keys[i][j] = 0;
+ 
+-	priv->nbuttons = MAX_BUTTONS;		/* Default number of buttons */
++	priv->nbuttons = WCM_MAX_BUTTONS;		/* Default number of buttons */
+ 	priv->relup = 5;			/* Default relative wheel up event */
+ 	priv->reldn = 4;			/* Default relative wheel down event */
+ 	
+@@ -859,7 +859,7 @@
+ 	}
+ 
+ 
+-	for (i=0; i<MAX_BUTTONS; i++)
++	for (i=0; i<WCM_MAX_BUTTONS; i++)
+ 	{
+ 		sprintf(b, "Button%d", i+1);
+ 		s = xf86SetStrOption(local->options, b, NULL);
+--- linuxwacom-0.8.2-2/src/xdrv/wcmUSB.c.orig	2009-01-19 21:58:37.000000000 +0300
++++ linuxwacom-0.8.2-2/src/xdrv/wcmUSB.c	2010-05-11 17:30:02.434108111 +0400
+@@ -1064,7 +1064,7 @@
+ 				for (nkeys = 0; nkeys < common->npadkeys; nkeys++)
+ 					if (event->code == common->padkey_code [nkeys])
+ 					{
+-						MOD_BUTTONS ((MAX_MOUSE_BUTTONS/2+nkeys), event->value);
++						MOD_BUTTONS ((WCM_MAX_MOUSE_BUTTONS/2+nkeys), event->value);
+ 						break;
+ 					}
+ 			}
+--- linuxwacom-0.8.2-2/src/xdrv/xf86Wacom.c.orig	2009-01-19 21:58:37.000000000 +0300
++++ linuxwacom-0.8.2-2/src/xdrv/xf86Wacom.c	2010-05-11 17:28:07.865752615 +0400
+@@ -84,6 +84,14 @@
+ #include "xf86Wacom.h"
+ #include "wcmFilter.h"
+ 
++#include <xf86_OSproc.h>
++#include <exevents.h>
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++#include <xserver-properties.h>
++#include <X11/extensions/XKB.h>
++#include <xkbsrv.h>
++#endif
++
+ static int xf86WcmDevOpen(DeviceIntPtr pWcm);
+ static void xf86WcmDevReadInput(LocalDevicePtr local);
+ static void xf86WcmDevControlProc(DeviceIntPtr device, PtrCtrl* ctrl);
+@@ -290,7 +298,11 @@
+ 		resolution = (int)((double)resolution * priv->factorX + 0.5);
+ #endif
+ 
+-		InitValuatorAxisStruct(local->dev, 0, topx, tabletSize, 
++		InitValuatorAxisStruct(local->dev, 0,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X),
++#endif
++			topx, tabletSize, 
+ 			resolution, 0, resolution); 
+ 	}
+ 	else /* y ax */
+@@ -317,7 +329,11 @@
+ 		resolution = (int)((double)resolution * priv->factorY + 0.5);
+ #endif
+ 
+-		InitValuatorAxisStruct(local->dev, 1, topy, tabletSize, 
++		InitValuatorAxisStruct(local->dev, 1,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y),
++#endif
++			topy, tabletSize, 
+ 			resolution, 0, resolution); 
+ 	}
+ }
+@@ -523,9 +539,13 @@
+ {
+ 	WacomDevicePtr priv = (WacomDevicePtr)local->private;
+ 	WacomCommonPtr common = priv->common;
+-	CARD8 butmap[MAX_BUTTONS+1];
++	CARD8 butmap[WCM_MAX_BUTTONS+1];
+ 	int nbaxes, nbbuttons, nbkeys;
+ 	int loop;
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++	Atom btn_labels[WCM_MAX_BUTTONS] = {0};
++	Atom axis_labels[MAX_VALUATORS] = {0};
++#endif
+ 
+ 	/* Detect tablet configuration, if possible */
+ 	if (priv->common->wcmModel->DetectConfig)
+@@ -552,7 +572,11 @@
+ 	for(loop=1; loop<=nbbuttons; loop++)
+ 		butmap[loop] = loop;
+ 
+-	if (InitButtonClassDeviceStruct(local->dev, nbbuttons, butmap) == FALSE)
++	if (InitButtonClassDeviceStruct(local->dev, nbbuttons,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++					btn_labels,
++#endif
++					butmap) == FALSE)
+ 	{
+ 		ErrorF("unable to allocate Button class device\n");
+ 		return FALSE;
+@@ -581,15 +605,13 @@
+ 		nbaxes = priv->naxes = 6;
+ 
+ 	if (InitValuatorClassDeviceStruct(local->dev, nbaxes,
+-#if WCM_XINPUTABI_MAJOR == 0
+-					  xf86GetMotionEvents,
+-					  local->history_size,
+-#else
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++					  axis_labels,
++#endif
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ 					  GetMotionHistory,
+ #endif
+ 					  GetMotionHistorySize(),
+-#endif
+ 					  ((priv->flags & ABSOLUTE_FLAG) ?
+ 					  Absolute : Relative) | 
+ 					  OutOfProximity ) == FALSE)
+@@ -602,7 +624,7 @@
+ 	/* only initial KeyClass and LedFeedbackClass once */
+ 	if (!priv->wcmInitKeyClassCount)
+ 	{
+-#ifdef WCM_KEY_SENDING_SUPPORT
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 5
+ 		if (nbkeys)
+ 		{
+ 			KeySymsRec wacom_keysyms;
+@@ -641,19 +663,37 @@
+ 			}
+ 		}
+ 
+-#ifndef WCM_XFREE86
+ 		if(InitKbdFeedbackClassDeviceStruct(local->dev, xf86WcmBellCallback,
+ 				xf86WcmKbdCtrlCallback) == FALSE) {
+ 			ErrorF("unable to init kbd feedback device struct\n");
+ 			return FALSE;
+ 		}
++#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++		if (InitKeyboardDeviceStruct(local->dev, NULL, NULL, xf86WcmKbdCtrlCallback)) {
++#define SYMS_PER_KEY 2
++			KeySymsRec syms;
++			CARD8 modmap[MAP_LENGTH];
++			int num_keys = XkbMaxLegalKeyCode - XkbMinLegalKeyCode + 1;
+ 
++			syms.map = keymap;
++			syms.mapWidth = SYMS_PER_KEY;
++			syms.minKeyCode = XkbMinLegalKeyCode;
++			syms.maxKeyCode = XkbMaxLegalKeyCode;
++
++			memset(modmap, 0, sizeof(modmap));
++			modmap[XkbMinLegalKeyCode + 2] = ShiftMask;
++			XkbApplyMappingChange(local->dev, &syms, syms.minKeyCode, num_keys, NULL, // modmap,
++					serverClient);
++		} else
++		{
++			xf86Msg(X_ERROR, "%s: unable to init kbd device struct\n ", local->name);
++			return FALSE;
++		}
++#endif
+ 		if(InitLedFeedbackClassDeviceStruct (local->dev, xf86WcmKbdLedCallback) == FALSE) {
+ 			ErrorF("unable to init led feedback device struct\n");
+ 			return FALSE;
+ 		}
+-#endif /* WCM_XFREE86 */
+-#endif /* WCM_KEY_SENDING_SUPPORT */
+ 	}
+ 
+ #if WCM_XINPUTABI_MAJOR == 0
+@@ -672,42 +712,81 @@
+ 	xf86WcmRotateScreen(local, common->wcmRotate);
+ 
+ 	/* pressure */
+-	InitValuatorAxisStruct(local->dev, 2, 0, 
+-		common->wcmMaxZ, 1, 1, 1);
++	InitValuatorAxisStruct(local->dev, 2,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++		XIGetKnownProperty(AXIS_LABEL_PROP_ABS_PRESSURE),
++#endif
++		0, common->wcmMaxZ, 1, 1, 1);
+ 
+ 	if (IsCursor(priv))
+ 	{
+ 		/* z-rot and throttle */
+-		InitValuatorAxisStruct(local->dev, 3, -900, 899, 1, 1, 1);
+-		InitValuatorAxisStruct(local->dev, 4, -1023, 1023, 1, 1, 1);
++		InitValuatorAxisStruct(local->dev, 3,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			XIGetKnownProperty(AXIS_LABEL_PROP_ABS_RZ),
++#endif
++			-900, 899, 1, 1, 1);
++		InitValuatorAxisStruct(local->dev, 4,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			XIGetKnownProperty(AXIS_LABEL_PROP_ABS_THROTTLE),
++#endif
++			-1023, 1023, 1, 1, 1);
+ 	}
+ 	else if (IsPad(priv))
+ 	{
+ 		/* strip-x and strip-y */
+ 		if (priv->naxes)
+ 		{
+-			InitValuatorAxisStruct(local->dev, 3, 0, common->wcmMaxStripX, 1, 1, 1);
+-			InitValuatorAxisStruct(local->dev, 4, 0, common->wcmMaxStripY, 1, 1, 1);
++			InitValuatorAxisStruct(local->dev, 3,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++				0, /* XXX what is this axis?*/
++#endif
++				0, common->wcmMaxStripX, 1, 1, 1);
++			InitValuatorAxisStruct(local->dev, 4,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++				0, /* XXX what is this axis?*/
++#endif
++				0, common->wcmMaxStripY, 1, 1, 1);
+ 		}
+ 	}
+ 	else
+ 	{
+ 		/* tilt-x and tilt-y */
+-		InitValuatorAxisStruct(local->dev, 3, -64, 63, 1, 1, 1);
+-		InitValuatorAxisStruct(local->dev, 4, -64, 63, 1, 1, 1);
++		InitValuatorAxisStruct(local->dev, 3,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			XIGetKnownProperty(AXIS_LABEL_PROP_ABS_TILT_X),
++#endif
++			-64, 63, 1, 1, 1);
++		InitValuatorAxisStruct(local->dev, 4,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			XIGetKnownProperty(AXIS_LABEL_PROP_ABS_TILT_Y),
++#endif
++			-64, 63, 1, 1, 1);
+ 	}
+ 
+ 	if ((strstr(common->wcmModel->name, "Intuos3") || 
+ 		strstr(common->wcmModel->name, "CintiqV5")) 
+ 			&& IsStylus(priv))
+ 		/* Art Marker Pen rotation */
+-		InitValuatorAxisStruct(local->dev, 5, -900, 899, 1, 1, 1);
++		InitValuatorAxisStruct(local->dev, 5,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			0, /* XXX what is this axis?*/
++#endif
++			-900, 899, 1, 1, 1);
+ 	else if (strstr(common->wcmModel->name, "Bamboo") && IsPad(priv))
+-		InitValuatorAxisStruct(local->dev, 5, 0, 71, 1, 1, 1);
++		InitValuatorAxisStruct(local->dev, 5,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			0, /* XXX what is this axis?*/
++#endif
++			0, 71, 1, 1, 1);
+ 	else
+ 	{
+ 		/* absolute wheel */
+-		InitValuatorAxisStruct(local->dev, 5, 0, 1023, 1, 1, 1);
++		InitValuatorAxisStruct(local->dev, 5,
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
++			XIGetKnownProperty(AXIS_LABEL_PROP_ABS_WHEEL),
++#endif
++			0, 1023, 1, 1, 1);
+ 	}
+ 
+ 	if (IsTouch(priv))
+--- linuxwacom-0.8.2-2/src/xdrv/xf86WacomDefs.h.orig	2009-01-19 21:58:37.000000000 +0300
++++ linuxwacom-0.8.2-2/src/xdrv/xf86WacomDefs.h	2010-05-11 17:28:56.624883674 +0400
+@@ -125,8 +125,8 @@
+ #define IsPad(priv)    (DEVICE_ID((priv)->flags) == PAD_ID)
+ 
+ #define FILTER_PRESSURE_RES	2048	/* maximum points in pressure curve */
+-#define MAX_BUTTONS		32	/* maximum number of tablet buttons */
+-#define MAX_MOUSE_BUTTONS	16	/* maximum number of buttons-on-pointer
++#define WCM_MAX_BUTTONS		32	/* maximum number of tablet buttons */
++#define WCM_MAX_MOUSE_BUTTONS	16	/* maximum number of buttons-on-pointer
+                                          * (which are treated as mouse buttons,
+                                          * not as keys like tablet menu buttons). 
+ 					 * For backword compability support, 
+@@ -161,8 +161,8 @@
+ 	int screenBottomY[32];	/* bottom cordinate of the associated screen */
+ 	int maxWidth;		/* max active screen width */
+ 	int maxHeight;		/* max active screen height */
+-	int button[MAX_BUTTONS];/* buttons assignments */
+-	unsigned keys[MAX_BUTTONS][256]; /* keystrokes assigned to buttons */
++	int button[WCM_MAX_BUTTONS];/* buttons assignments */
++	unsigned keys[WCM_MAX_BUTTONS][256]; /* keystrokes assigned to buttons */
+ 	int relup;
+ 	unsigned rupk[256];     /* keystrokes assigned to relative wheel up event (default is button 4) */
+ 	int reldn;
+@@ -386,7 +386,7 @@
+ 
+ 	int nbuttons;                /* total number of buttons */
+ 	int npadkeys;                /* number of pad keys in the above array */
+-	int padkey_code[MAX_BUTTONS];/* hardware codes for buttons */
++	int padkey_code[WCM_MAX_BUTTONS];/* hardware codes for buttons */
+ 
+ 	WacomDevicePtr wcmDevices;   /* list of devices sharing same port */
+ 	int wcmPktLength;            /* length of a packet */
Comment 6 kamikaze 2010-06-10 09:10:46 UTC
Hello, this is ancient. Somebody commit it, pleeaaasse! I'm getting
the dreaded
"FreeBSD ports that you maintain which are currently marked broken"
e-mail.

Regards

-- 
A: Because it fouls the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Comment 7 Martin Wilke freebsd_committer freebsd_triage 2010-07-10 11:08:09 UTC
State Changed
From-To: feedback->closed

Committed. Thanks!