summaryrefslogtreecommitdiff
path: root/dev-java/jinput
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/jinput')
-rw-r--r--dev-java/jinput/Manifest1
-rw-r--r--dev-java/jinput/files/javah-classpath.patch10
-rw-r--r--dev-java/jinput/files/nostrip.patch12
-rw-r--r--dev-java/jinput/files/remove-getDeviceUsageBits.patch90
-rw-r--r--dev-java/jinput/files/unbundle.patch10
-rw-r--r--dev-java/jinput/jinput-2.0.6-r1.ebuild50
-rw-r--r--dev-java/jinput/metadata.xml13
7 files changed, 186 insertions, 0 deletions
diff --git a/dev-java/jinput/Manifest b/dev-java/jinput/Manifest
new file mode 100644
index 000000000000..5acb56a18210
--- /dev/null
+++ b/dev-java/jinput/Manifest
@@ -0,0 +1 @@
+DIST jinput-2.0.6.tar.gz 1590738 BLAKE2B ceb296af7ca4309913708fac5c67c6fec9cd94ef3dad454c41a99ffee7e390545ab6424354dd0dc9755dfb4c0711b449b29b423b395c0f2f504a73d2d7019645 SHA512 770b3a0724334b9182098797923cc11e575b42cb67c5583d8aac7aeb432ec80189199daf1ef624a56923c4ecce271f05adf0481c13b8cd6997bb1862a7a91eba
diff --git a/dev-java/jinput/files/javah-classpath.patch b/dev-java/jinput/files/javah-classpath.patch
new file mode 100644
index 000000000000..ae90584691b8
--- /dev/null
+++ b/dev-java/jinput/files/javah-classpath.patch
@@ -0,0 +1,10 @@
+--- plugins/linux/build.xml.orig 2006-07-11 22:07:38.000000000 +0100
++++ plugins/linux/build.xml 2011-11-16 15:49:21.140789781 +0000
+@@ -56,6 +56,7 @@
+ <javah destdir="src/native">
+ <classpath>
+ <pathelement location="classes"/>
++ <pathelement location="../../coreAPI/classes"/>
+ </classpath>
+ <class name="net.java.games.input.LinuxEventDevice"/>
+ <class name="net.java.games.input.LinuxJoystickDevice"/>
diff --git a/dev-java/jinput/files/nostrip.patch b/dev-java/jinput/files/nostrip.patch
new file mode 100644
index 000000000000..8627c0d12251
--- /dev/null
+++ b/dev-java/jinput/files/nostrip.patch
@@ -0,0 +1,12 @@
+--- plugins/linux/src/native/build.xml.orig 2013-03-25 18:01:56.000000000 +0000
++++ plugins/linux/src/native/build.xml 2015-04-12 17:36:36.020105790 +0100
+@@ -46,9 +46,6 @@
+ <arg line="-shared -O2 -Wall -o ${libname}"/>
+ <fileset dir="." includes="*.o"/>
+ </apply>
+- <apply dir="." parallel="true" executable="strip" os="Linux" failonerror="true">
+- <fileset file="${libname}"/>
+- </apply>
+ </target>
+ </project>
+
diff --git a/dev-java/jinput/files/remove-getDeviceUsageBits.patch b/dev-java/jinput/files/remove-getDeviceUsageBits.patch
new file mode 100644
index 000000000000..038473d5ba00
--- /dev/null
+++ b/dev-java/jinput/files/remove-getDeviceUsageBits.patch
@@ -0,0 +1,90 @@
+From 3f8a5394be4cddfb5bec584170678aac0f28b763 Mon Sep 17 00:00:00 2001
+From: Endolf <endolf@java.net>
+Date: Fri, 22 Aug 2014 14:38:30 +0100
+Subject: [PATCH] Remove usage_bits call as it doesn't work on v3 kernels.
+
+---
+ .../net/java/games/input/LinuxEventDevice.java | 32 ----------------------
+ .../native/net_java_games_input_LinuxEventDevice.c | 14 ----------
+ 2 files changed, 46 deletions(-)
+
+diff --git a/plugins/linux/src/java/net/java/games/input/LinuxEventDevice.java b/plugins/linux/src/java/net/java/games/input/LinuxEventDevice.java
+index a28c4c7..41a4fee 100644
+--- a/plugins/linux/src/java/net/java/games/input/LinuxEventDevice.java
++++ b/plugins/linux/src/java/net/java/games/input/LinuxEventDevice.java
+@@ -94,34 +94,11 @@ private final static int countComponents(List components, Class id_type, boolean
+ }
+
+ private final Controller.Type guessType() throws IOException {
+- Controller.Type type_from_usages = guessTypeFromUsages();
+- if (type_from_usages == Controller.Type.UNKNOWN)
+- return guessTypeFromComponents();
+- else
+- return type_from_usages;
+- }
+-
+- private final Controller.Type guessTypeFromUsages() throws IOException {
+- byte[] usage_bits = getDeviceUsageBits();
+- if (isBitSet(usage_bits, NativeDefinitions.USAGE_MOUSE))
+- return Controller.Type.MOUSE;
+- else if (isBitSet(usage_bits, NativeDefinitions.USAGE_KEYBOARD))
+- return Controller.Type.KEYBOARD;
+- else if (isBitSet(usage_bits, NativeDefinitions.USAGE_GAMEPAD))
+- return Controller.Type.GAMEPAD;
+- else if (isBitSet(usage_bits, NativeDefinitions.USAGE_JOYSTICK))
+- return Controller.Type.STICK;
+- else
+- return Controller.Type.UNKNOWN;
+- }
+-
+- private final Controller.Type guessTypeFromComponents() throws IOException {
+ List components = getComponents();
+ if (components.size() == 0)
+ return Controller.Type.UNKNOWN;
+ int num_rel_axes = countComponents(components, Component.Identifier.Axis.class, true);
+ int num_abs_axes = countComponents(components, Component.Identifier.Axis.class, false);
+- int num_keys = countComponents(components, Component.Identifier.Key.class, false);
+ int mouse_traits = 0;
+ int keyboard_traits = 0;
+ int joystick_traits = 0;
+@@ -342,15 +319,6 @@ private final List getDeviceComponents() throws IOException {
+ }
+ private final static native void nGetBits(long fd, int ev_type, byte[] evtype_bits) throws IOException;
+
+- private final byte[] getDeviceUsageBits() throws IOException {
+- byte[] bits = new byte[NativeDefinitions.USAGE_MAX/8 + 1];
+- if (getVersion() >= 0x010001) {
+- nGetDeviceUsageBits(fd, bits);
+- }
+- return bits;
+- }
+- private final static native void nGetDeviceUsageBits(long fd, byte[] type_bits) throws IOException;
+-
+ public final synchronized void pollKeyStates() throws IOException {
+ nGetKeyStates(fd, key_states);
+ }
+diff --git a/plugins/linux/src/native/net_java_games_input_LinuxEventDevice.c b/plugins/linux/src/native/net_java_games_input_LinuxEventDevice.c
+index 90eff09..18913c2 100644
+--- a/plugins/linux/src/native/net_java_games_input_LinuxEventDevice.c
++++ b/plugins/linux/src/native/net_java_games_input_LinuxEventDevice.c
+@@ -112,20 +112,6 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEventDevice_nGetNumEffects
+ return num_effects;
+ }
+
+-JNIEXPORT void JNICALL Java_net_java_games_input_LinuxEventDevice_nGetDeviceUsageBits(JNIEnv *env, jclass unused, jlong fd_address, jbyteArray usages_array) {
+-#if EV_VERSION >= 0x010001
+- int fd = (int)fd_address;
+- jsize len = (*env)->GetArrayLength(env, usages_array);
+- jbyte *usages = (*env)->GetByteArrayElements(env, usages_array, NULL);
+- if (usages == NULL)
+- return;
+- int res = ioctl(fd, EVIOCGUSAGE(len), usages);
+- (*env)->ReleaseByteArrayElements(env, usages_array, usages, 0);
+- if (res == -1)
+- throwIOException(env, "Failed to get device usages (%d)\n", errno);
+-#endif
+-}
+-
+ JNIEXPORT void JNICALL Java_net_java_games_input_LinuxEventDevice_nGetBits(JNIEnv *env, jclass unused, jlong fd_address, jint evtype, jbyteArray bits_array) {
+ int fd = (int)fd_address;
+ jsize len = (*env)->GetArrayLength(env, bits_array);
diff --git a/dev-java/jinput/files/unbundle.patch b/dev-java/jinput/files/unbundle.patch
new file mode 100644
index 000000000000..1a8686308d71
--- /dev/null
+++ b/dev-java/jinput/files/unbundle.patch
@@ -0,0 +1,10 @@
+--- build.xml.orig 2013-03-25 18:01:56.000000000 +0000
++++ build.xml 2015-04-12 17:11:45.869203820 +0100
+@@ -137,7 +137,6 @@
+ <fileset dir="plugins/wintab/classes">
+ <include name="**/*.class"/>
+ </fileset>
+- <zipfileset src="lib/jutils.jar" includes="**/*.class"/>
+ <manifest>
+ <attribute name="Sealed" value="true"/>
+ </manifest>
diff --git a/dev-java/jinput/jinput-2.0.6-r1.ebuild b/dev-java/jinput/jinput-2.0.6-r1.ebuild
new file mode 100644
index 000000000000..c4d0b5e00785
--- /dev/null
+++ b/dev-java/jinput/jinput-2.0.6-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+COMMIT="790b666"
+JAVA_PKG_IUSE="doc source"
+
+inherit eutils toolchain-funcs java-pkg-2 java-ant-2 vcs-snapshot
+
+DESCRIPTION="An implementation of an API for game controller discovery and polled input"
+HOMEPAGE="https://java.net/projects/jinput"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+CDEPEND="dev-java/jutils:0"
+
+RDEPEND=">=virtual/jre-1.4
+ ${CDEPEND}"
+
+DEPEND=">=virtual/jdk-1.4
+ ${CDEPEND}"
+
+JAVA_PKG_BSFIX="off"
+EANT_BUILD_TARGET="dist"
+
+src_prepare() {
+ # http://java.net/jira/browse/JINPUT-44
+ # http://java.net/jira/browse/JINPUT-45
+ epatch "${FILESDIR}"/{javah-classpath,nostrip,remove-getDeviceUsageBits,unbundle}.patch
+
+ sed -i \
+ -e "s/\"cc\"/\"$(tc-getCC)\"/g" \
+ -e "s/-O[0-9]/${CFLAGS} ${LDFLAGS}/g" \
+ plugins/linux/src/native/build.xml || die
+
+ java-pkg_jar-from --into lib jutils
+}
+
+src_install() {
+ java-pkg_dojar dist/${PN}.jar
+ java-pkg_doso dist/lib${PN}-*.so
+
+ # Only core API docs, others would conflict.
+ use doc && java-pkg_dojavadoc coreAPI/apidocs
+ use source && java-pkg_dosrc */src/java/* */**/src/java/*
+}
diff --git a/dev-java/jinput/metadata.xml b/dev-java/jinput/metadata.xml
new file mode 100644
index 000000000000..72c9de2d7d23
--- /dev/null
+++ b/dev-java/jinput/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+ <longdescription>The JInput Project hosts an implementation of an API for game controller discovery and polled input. It is part of a suite of open-source technologies initiated by the Game Technology Group at Sun Microsystems with intention of making the development of high performance games in Java a reality.</longdescription>
+ <upstream>
+ <remote-id type="github">jinput/jinput</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>