summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Volkov <pva@gentoo.org>2010-11-02 11:06:31 +0000
committerPeter Volkov <pva@gentoo.org>2010-11-02 11:06:31 +0000
commit07eb69b6c4da20fa22d42a8439863a54c14af03b (patch)
tree1e6568260ff796ddbfc8ba0dc09a188744a2eea0
parentnet-dialup/accel-pptp: Version bump. (diff)
downloadpva-07eb69b6c4da20fa22d42a8439863a54c14af03b.tar.gz
pva-07eb69b6c4da20fa22d42a8439863a54c14af03b.tar.bz2
pva-07eb69b6c4da20fa22d42a8439863a54c14af03b.zip
sys-kernel/linuxwacom-module: Initial import, bug #335821
svn path=/; revision=464
-rw-r--r--sys-kernel/linuxwacom-module/Manifest6
-rw-r--r--sys-kernel/linuxwacom-module/files/check_driver24
-rw-r--r--sys-kernel/linuxwacom-module/files/check_driver.122
-rw-r--r--sys-kernel/linuxwacom-module/files/linuxwacom-module-2.6.36.patch30
-rw-r--r--sys-kernel/linuxwacom-module/linuxwacom-module-0.8.8_p10.ebuild104
-rw-r--r--sys-kernel/linuxwacom-module/metadata.xml9
6 files changed, 195 insertions, 0 deletions
diff --git a/sys-kernel/linuxwacom-module/Manifest b/sys-kernel/linuxwacom-module/Manifest
new file mode 100644
index 0000000..4fd5dc9
--- /dev/null
+++ b/sys-kernel/linuxwacom-module/Manifest
@@ -0,0 +1,6 @@
+AUX check_driver 499 RMD160 298507626fa8bb20df0d5d1404002133ef1e4c41 SHA1 12ae37807a03f36be2c5cc47e444475677b41693 SHA256 45331d948e1d37141a56258510d6ff708092f70181e83348eb66eef005878069
+AUX check_driver.1 750 RMD160 9ebe8e30ce2cb83ca3245ba29d19b06e81181651 SHA1 4d6fba491df26709b821184f9e011568eaaaebde SHA256 67bf1469f122830d9e99cbd8762e61f682c9a831577fde29af8ef1ab0440d024
+AUX linuxwacom-module-2.6.36.patch 738 RMD160 b2d254f0c52cf8418aa1975f6cc4b39e9e48ad4a SHA1 70940702e8a88e83b6db3557a28450c9ba0ca3e9 SHA256 4ad552f88e14661ea1602ec9733d90a7e6491576b65444c792267bf0f15908ea
+DIST linuxwacom-0.8.8-10.tar.bz2 1055098 RMD160 c7a5f5cbf222c33831ca6d92c376cebd3413f773 SHA1 70da7a63c1b00d8153853e4ea38652e63cc4ec0e SHA256 042be61e2f7165ecf37e1805c499575ce6912a5986fae153921821c8f5ede55a
+EBUILD linuxwacom-module-0.8.8_p10.ebuild 2843 RMD160 ef9850ba90dbfd0174371cff39c18ddd85dbd67e SHA1 4e7d3ab4c3c685b6ebed7d240a322128f5226124 SHA256 f310572463556a031b186be2ab55eaac4c3138993f07595e855cffa969773cae
+MISC metadata.xml 299 RMD160 9102c3c3250268469fed8c9bee417c9f2ed3c606 SHA1 7dadc43795769b1991a48c04cd7dce71e6d7257e SHA256 08573e1a8a6e965d1f7a92fecb202beab6137302e2055bff36e0be3c38d3d4b2
diff --git a/sys-kernel/linuxwacom-module/files/check_driver b/sys-kernel/linuxwacom-module/files/check_driver
new file mode 100644
index 0000000..6e49aa1
--- /dev/null
+++ b/sys-kernel/linuxwacom-module/files/check_driver
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+
+#logger check_driver called with: $1 - $2 - $3 -
+
+wanted=$1
+devpath=$2
+bustype=$3
+
+device=$(readlink /sys/$devpath/device)
+device=${device##*/}
+driver=$(readlink /sys/$devpath/device/driver)
+driver=${driver##*/}
+
+logger device $device is bound to the $driver driver
+
+if [ "$driver" != "$wanted" ]; then
+ logger must rebind
+ echo -n "$device" > /sys/$devpath/device/driver/unbind
+ echo -n "$device" > /sys/bus/$bustype/drivers/$wanted/bind
+else
+ logger no need to rebind
+fi
+
diff --git a/sys-kernel/linuxwacom-module/files/check_driver.1 b/sys-kernel/linuxwacom-module/files/check_driver.1
new file mode 100644
index 0000000..cf3a5f9
--- /dev/null
+++ b/sys-kernel/linuxwacom-module/files/check_driver.1
@@ -0,0 +1,22 @@
+.TH wacom\-tools 1 "5 Nov 2004" "Debian GNU/Linux" "Debian"
+.SH NAME
+check_driver \- Linux 2.6(.16+) userspace device rebinding helper.
+
+.SH SYNOPSIS
+.B check_driver driver devpath bustype
+
+.SH DESCRIPTION
+This is a \fBRUN\fP script that may be invoked from a udev rule to ensure the
+correct driver is bound to a particular device, in situations where a
+basic driver may bind to it first but a more specialised one is available.
+
+.SH EXAMPLE
+For the wacom device, a rule like this is used:
+
+KERNEL=="event[0-9]*", SYSFS{idVendor}=="056a", ACTION=="add", RUN+="/lib/udev/check_driver wacom $devpath $env{ID_BUS}"
+
+.SH COPYRIGHT
+2006, Ron Lee <ron@debian.org>. Created for the Debian GNU/Linux
+distribution. It may be freely distributed elsewhere.
+
+
diff --git a/sys-kernel/linuxwacom-module/files/linuxwacom-module-2.6.36.patch b/sys-kernel/linuxwacom-module/files/linuxwacom-module-2.6.36.patch
new file mode 100644
index 0000000..81f108f
--- /dev/null
+++ b/sys-kernel/linuxwacom-module/files/linuxwacom-module-2.6.36.patch
@@ -0,0 +1,30 @@
+=== modified file 'src/2.6.30/wacom_wac.c'
+--- src/2.6.30/wacom_wac.c 2010-10-29 07:30:39 +0000
++++ src/2.6.30/wacom_wac.c 2010-10-29 07:31:29 +0000
+@@ -202,10 +202,10 @@
+ y = get_unaligned_be16(&data[5 + (idx * 9)]) & 0x7ff;
+
+ if (wacom->last_finger != finger) {
+- if (x == input->abs[ABS_X])
++ if (x == input->absinfo[ABS_X].value)
+ x++;
+
+- if (y == input->abs[ABS_Y])
++ if (y == input->absinfo[ABS_X].value)
+ y++;
+ }
+
+@@ -843,10 +843,10 @@
+ int y = le16_to_cpup((__le16 *)&data[4 + finger * 2]) & 0x7fff;
+
+ if (wacom->last_finger != finger) {
+- if (x == input->abs[ABS_X])
++ if (x == input->absinfo[ABS_X].value)
+ x++;
+
+- if (y == input->abs[ABS_Y])
++ if (y == input->absinfo[ABS_X].value)
+ y++;
+ }
+
+
diff --git a/sys-kernel/linuxwacom-module/linuxwacom-module-0.8.8_p10.ebuild b/sys-kernel/linuxwacom-module/linuxwacom-module-0.8.8_p10.ebuild
new file mode 100644
index 0000000..092d27f
--- /dev/null
+++ b/sys-kernel/linuxwacom-module/linuxwacom-module-0.8.8_p10.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+inherit eutils toolchain-funcs linux-mod autotools
+
+# http://who-t.blogspot.com/2010/09/wacom-support-in-linux.html
+MY_PN="linuxwacom"
+DESCRIPTION="Kernel driver for Wacom tablets and drawing devices"
+HOMEPAGE="http://linuxwacom.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${MY_PN}/${MY_PN}-${PV/_p/-}.tar.bz2"
+
+IUSE="usb"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 hppa ~ppc ~ppc64 x86"
+
+RDEPEND="sys-fs/udev
+ sys-libs/ncurses"
+
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ usb? ( >=sys-kernel/linux-headers-2.6 )"
+S=${WORKDIR}/${MY_PN}-${PV/_p/-}
+
+MODULE_NAMES="wacom(input:${S}/src:${S}/src)"
+BUILD_TARGETS="all"
+
+wacom_check() {
+ ebegin "Checking for wacom module"
+ linux_chkconfig_module TABLET_USB_WACOM
+ eend $?
+
+ if [[ $? -ne 0 ]] || ! [ -f "/lib/modules/${KV}/kernel/drivers/input/tablet/wacom.ko" ]; then
+ eerror "You need to have your kernel compiled with wacom as a module"
+ eerror "to let linuxwacom overwrite it."
+ eerror "Enable it in the kernel, found at:"
+ eerror
+ eerror " Device Drivers"
+ eerror " Input device support"
+ eerror " Tablets"
+ eerror " <M> Wacom Intuos/Graphire tablet support (USB)"
+ eerror
+ eerror '(in the "USB support" page it is suggested to include also:'
+ eerror "EHCI , OHCI , USB Human Interface Device+HID input layer)"
+ eerror
+ eerror "Then recompile kernel. Otherwise, remove the module USE flag."
+ die "Wacom not compiled in kernel as a module!"
+ fi
+}
+
+pkg_setup() {
+ linux-mod_pkg_setup
+ wacom_check
+}
+
+src_prepare() {
+ if [[ $(gcc-major-version) < 4 || $(gcc-minor-version) < 2 ]]; then
+ die "Versions of linuxwacom >= 0.7.9 require gcc >= 4.2 to compile."
+ fi
+ sed '/WCM_SRC_SUBDIRS=/s: wacomxi util xdrv::' -i configure.in || die
+
+ kernel_is ge 2 6 36 && epatch "${FILESDIR}/linuxwacom-module-2.6.36.patch"
+ eautoreconf
+}
+
+# TODO: Avoid build of hal (but actually upstream is working on separation of
+# modules from linuxwacom so this is really low priority).
+src_configure() {
+ unset ARCH
+ econf \
+ --enable-wacom \
+ --with-kernel=${KV_OUT_DIR} \
+ --disable-dependency-tracking \
+ --without-x \
+ --disable-xserver64 \
+ --without-xlib \
+ --without-xorg-sdk \
+ --without-tcl \
+ --without-tk \
+ $(printf -- "--disable-%s " libwacom{cfg,xi} {wac,xi}dump xsetwacom wacomxrrd)
+}
+
+src_install() {
+ # Inelegant attempt to work around a nasty build system
+ cp src/*/wacom.{o,ko} src/ || die
+ linux-mod_src_install
+
+ insinto /etc/udev/rules.d/
+ doins src/util/60-wacom.rules || die
+
+ exeinto /lib/udev/
+ doexe "${FILESDIR}"/check_driver || die
+ doman "${FILESDIR}"/check_driver.1
+
+ dodoc AUTHORS ChangeLog
+}
+
+pkg_postinst() {
+ ewarn "Please remove any HAL .FDI files you may"
+ ewarn "previously have installed for linuxwacom."
+}
diff --git a/sys-kernel/linuxwacom-module/metadata.xml b/sys-kernel/linuxwacom-module/metadata.xml
new file mode 100644
index 0000000..b692c0e
--- /dev/null
+++ b/sys-kernel/linuxwacom-module/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>no-herd</herd>
+ <longdescription>kernel driver for wacom tablets</longdescription>
+ <use>
+ <flag name='modules'>Build kernel module</flag>
+ </use>
+</pkgmetadata>