update to 3.2.4
This commit is contained in:
parent
efd8563192
commit
b0814dd143
@ -1 +1 @@
|
|||||||
jna-3.0.9.tar.bz2
|
jna-3.2.4.tar.bz2
|
||||||
|
1
import.log
Normal file
1
import.log
Normal file
@ -0,0 +1 @@
|
|||||||
|
jna-3_2_4-1_el5:F-12:jna-3.2.4-1.el5.src.rpm:1259006256
|
@ -1,73 +0,0 @@
|
|||||||
diff -ur jna-3.0.4-svn729/src/com/sun/jna/Function.java jna-3.0.4-svn729.orig/src/com/sun/jna/Function.java
|
|
||||||
--- jna-3.0.4-svn729/src/com/sun/jna/Function.java 2008-09-12 10:05:07.000000000 -0400
|
|
||||||
+++ jna-3.0.4-svn729.orig/src/com/sun/jna/Function.java 2008-10-01 23:23:38.000000000 -0400
|
|
||||||
@@ -12,6 +12,7 @@
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
+import java.lang.reflect.Array;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
@@ -351,16 +352,41 @@
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ private Class primitiveFromBoxed(Class boxedClass) {
|
|
||||||
+ if (boxedClass.isPrimitive())
|
|
||||||
+ return boxedClass;
|
|
||||||
+ if (boxedClass == Boolean.class)
|
|
||||||
+ return Boolean.TYPE;
|
|
||||||
+ if (boxedClass == Byte.class)
|
|
||||||
+ return Byte.TYPE;
|
|
||||||
+ if (boxedClass == Character.class)
|
|
||||||
+ return Character.TYPE;
|
|
||||||
+ if (boxedClass == Short.class)
|
|
||||||
+ return Short.TYPE;
|
|
||||||
+ if (boxedClass == Integer.class)
|
|
||||||
+ return Integer.TYPE;
|
|
||||||
+ if (boxedClass == Long.class)
|
|
||||||
+ return Long.TYPE;
|
|
||||||
+ if (boxedClass == Float.class)
|
|
||||||
+ return Float.TYPE;
|
|
||||||
+ if (boxedClass == Double.class)
|
|
||||||
+ return Double.TYPE;
|
|
||||||
+ return boxedClass;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
private Object convertArgument(Object[] args, int index, Method invokingMethod, TypeMapper mapper) {
|
|
||||||
Object arg = args[index];
|
|
||||||
if (arg != null) {
|
|
||||||
Class type = arg.getClass();
|
|
||||||
ToNativeConverter converter = null;
|
|
||||||
+ boolean isArray = false;
|
|
||||||
if (NativeMapped.class.isAssignableFrom(type)) {
|
|
||||||
converter = NativeMappedConverter.getInstance(type);
|
|
||||||
- }
|
|
||||||
- else if (mapper != null) {
|
|
||||||
+ } else if (NativeMapped[].class.isAssignableFrom(type)) {
|
|
||||||
+ isArray = true;
|
|
||||||
+ converter = NativeMappedConverter.getInstance(type.getComponentType());
|
|
||||||
+ } else if (mapper != null) {
|
|
||||||
converter = mapper.getToNativeConverter(type);
|
|
||||||
}
|
|
||||||
if (converter != null) {
|
|
||||||
@@ -371,7 +397,15 @@
|
|
||||||
else {
|
|
||||||
context = new FunctionParameterContext(this, args, index);
|
|
||||||
}
|
|
||||||
- arg = converter.toNative(arg, context);
|
|
||||||
+ if (isArray) {
|
|
||||||
+ NativeMapped[] nativeArg = (NativeMapped[]) arg;
|
|
||||||
+ /* Reassign arg here to a new array */
|
|
||||||
+ arg = Array.newInstance(primitiveFromBoxed(converter.nativeType()), nativeArg.length);
|
|
||||||
+ for (int i = 0; i < nativeArg.length; i++)
|
|
||||||
+ Array.set(arg, i, converter.toNative(nativeArg[i], context));
|
|
||||||
+ } else {
|
|
||||||
+ arg = converter.toNative(arg, context);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (arg == null || isPrimitiveArray(arg.getClass())) {
|
|
||||||
Only in jna-3.0.4-svn729.orig/src/com/sun/jna: Function.java~
|
|
@ -1,14 +0,0 @@
|
|||||||
--- jna-3.0.9/src/com/sun/jna/NativeLibrary.java 2008-10-28 20:30:54.000000000 -0400
|
|
||||||
+++ jna-3.0.9.orig/src/com/sun/jna/NativeLibrary.java 2008-11-15 18:29:52.000000000 -0500
|
|
||||||
@@ -374,8 +374,9 @@
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
else if (Platform.isLinux()) {
|
|
||||||
- if (isVersionedName(libName)) {
|
|
||||||
- // A specific version was requested - use as is for search
|
|
||||||
+ if (isVersionedName(libName) || libName.endsWith(".so")) {
|
|
||||||
+ // An already mapped name was specified - use as is
|
|
||||||
+ // for search
|
|
||||||
return libName;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,98 +0,0 @@
|
|||||||
diff -ur jna-3.0.9/native/dispatch.c jna-3.0.9.process/native/dispatch.c
|
|
||||||
--- jna-3.0.9/native/dispatch.c 2008-09-22 11:55:59.000000000 -0400
|
|
||||||
+++ jna-3.0.9.process/native/dispatch.c 2008-12-30 17:03:22.000000000 -0500
|
|
||||||
@@ -641,14 +641,20 @@
|
|
||||||
void *handle = NULL;
|
|
||||||
LIBNAMETYPE libname = NULL;
|
|
||||||
|
|
||||||
- if ((libname = LIBNAME2CSTR(env, lib)) != NULL) {
|
|
||||||
- handle = (void *)LOAD_LIBRARY(libname);
|
|
||||||
- if (!handle) {
|
|
||||||
- char buf[1024];
|
|
||||||
- throwByName(env, EUnsatisfiedLink, LOAD_ERROR(buf, sizeof(buf)));
|
|
||||||
+ /* dlopen on Unix allows NULL to mean "current process" */
|
|
||||||
+ if (lib != NULL) {
|
|
||||||
+ if ((libname = LIBNAME2CSTR(env, lib)) == NULL) {
|
|
||||||
+ return (jlong)A2L(NULL);
|
|
||||||
}
|
|
||||||
- free(libname);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ handle = (void *)LOAD_LIBRARY(libname);
|
|
||||||
+ if (!handle) {
|
|
||||||
+ char buf[1024];
|
|
||||||
+ throwByName(env, EUnsatisfiedLink, LOAD_ERROR(buf, sizeof(buf)));
|
|
||||||
+ }
|
|
||||||
+ if (libname != NULL)
|
|
||||||
+ free(libname);
|
|
||||||
return (jlong)A2L(handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -ur jna-3.0.9/src/com/sun/jna/NativeLibrary.java jna-3.0.9.process/src/com/sun/jna/NativeLibrary.java
|
|
||||||
--- jna-3.0.9/src/com/sun/jna/NativeLibrary.java 2008-12-30 17:19:15.000000000 -0500
|
|
||||||
+++ jna-3.0.9.process/src/com/sun/jna/NativeLibrary.java 2008-12-30 17:17:45.000000000 -0500
|
|
||||||
@@ -45,6 +45,7 @@
|
|
||||||
private final String libraryPath;
|
|
||||||
private final Map functions = new HashMap();
|
|
||||||
|
|
||||||
+ private static WeakReference currentProcess;
|
|
||||||
private static final Map libraries = new HashMap();
|
|
||||||
private static final Map searchPaths = Collections.synchronizedMap(new HashMap());
|
|
||||||
private static final List librarySearchPath = new LinkedList();
|
|
||||||
@@ -196,6 +197,27 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
+ * Returns an instance of NativeLibrary which refers to the current process.
|
|
||||||
+ * This is useful for accessing functions which were already mapped by some
|
|
||||||
+ * other mechanism, without having to reference or even know the exact
|
|
||||||
+ * name of the native library.
|
|
||||||
+ */
|
|
||||||
+ public static synchronized final NativeLibrary getProcess() {
|
|
||||||
+ NativeLibrary library = null;
|
|
||||||
+ if (currentProcess != null) {
|
|
||||||
+ library = (NativeLibrary) currentProcess.get();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (library == null) {
|
|
||||||
+ long handle = open(null);
|
|
||||||
+ library = new NativeLibrary("<process>", null, handle);
|
|
||||||
+ currentProcess = new WeakReference(library);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return library;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
* Add a path to search for the specified library, ahead of any system paths
|
|
||||||
*
|
|
||||||
* @param libraryName The name of the library to use the path for
|
|
||||||
@@ -287,9 +309,13 @@
|
|
||||||
public String getName() {
|
|
||||||
return libraryName;
|
|
||||||
}
|
|
||||||
- /** Returns the file on disk corresponding to this NativeLibrary instacne.
|
|
||||||
+ /**
|
|
||||||
+ * Returns the file on disk corresponding to this NativeLibrary instance.
|
|
||||||
+ * If this NativeLibrary represents the current process, this function will return null.
|
|
||||||
*/
|
|
||||||
public File getFile() {
|
|
||||||
+ if (libraryPath == null)
|
|
||||||
+ return null;
|
|
||||||
return new File(libraryPath);
|
|
||||||
}
|
|
||||||
/** Close the library when it is no longer referenced. */
|
|
||||||
@@ -300,8 +326,11 @@
|
|
||||||
public void dispose() {
|
|
||||||
synchronized(libraries) {
|
|
||||||
libraries.remove(getName());
|
|
||||||
- libraries.remove(getFile().getAbsolutePath());
|
|
||||||
- libraries.remove(getFile().getName());
|
|
||||||
+ File path = getFile();
|
|
||||||
+ if (path != null) {
|
|
||||||
+ libraries.remove(path.getAbsolutePath());
|
|
||||||
+ libraries.remove(path.getName());
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
synchronized(this) {
|
|
||||||
if (handle != 0) {
|
|
@ -1,7 +1,7 @@
|
|||||||
diff -ur jna-3.0.9/src/com/sun/jna/Native.java jna-3.0.9.orig/src/com/sun/jna/Native.java
|
diff -up ./src/com/sun/jna/Native.java.loadlib ./src/com/sun/jna/Native.java
|
||||||
--- jna-3.0.9/src/com/sun/jna/Native.java 2008-10-31 20:35:02.000000000 -0400
|
--- ./src/com/sun/jna/Native.java.loadlib 2009-11-09 10:23:05.000000000 +0100
|
||||||
+++ jna-3.0.9.orig/src/com/sun/jna/Native.java 2008-10-31 20:42:23.000000000 -0400
|
+++ ./src/com/sun/jna/Native.java 2009-11-09 10:30:41.000000000 +0100
|
||||||
@@ -504,109 +504,17 @@
|
@@ -630,131 +630,19 @@ public final class Native {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,6 +28,7 @@ diff -ur jna-3.0.9/src/com/sun/jna/Native.java jna-3.0.9.orig/src/com/sun/jna/Na
|
|||||||
- String path = new File(new File(dirs[i]), System.mapLibraryName(libName)).getAbsolutePath();
|
- String path = new File(new File(dirs[i]), System.mapLibraryName(libName)).getAbsolutePath();
|
||||||
- try {
|
- try {
|
||||||
- System.load(path);
|
- System.load(path);
|
||||||
|
- nativeLibraryPath = path;
|
||||||
- return;
|
- return;
|
||||||
- } catch (UnsatisfiedLinkError ex) {
|
- } catch (UnsatisfiedLinkError ex) {
|
||||||
- }
|
- }
|
||||||
@ -41,7 +42,9 @@ diff -ur jna-3.0.9/src/com/sun/jna/Native.java jna-3.0.9.orig/src/com/sun/jna/Na
|
|||||||
- ext = "dylib";
|
- ext = "dylib";
|
||||||
- }
|
- }
|
||||||
- try {
|
- try {
|
||||||
- System.load(path.substring(0, path.lastIndexOf(orig)) + ext);
|
- path = path.substring(0, path.lastIndexOf(orig)) + ext;
|
||||||
|
- System.load(path);
|
||||||
|
- nativeLibraryPath = path;
|
||||||
- return;
|
- return;
|
||||||
- } catch (UnsatisfiedLinkError ex) {
|
- } catch (UnsatisfiedLinkError ex) {
|
||||||
- }
|
- }
|
||||||
@ -50,22 +53,30 @@ diff -ur jna-3.0.9/src/com/sun/jna/Native.java jna-3.0.9.orig/src/com/sun/jna/Na
|
|||||||
- }
|
- }
|
||||||
try {
|
try {
|
||||||
- System.loadLibrary(libName);
|
- System.loadLibrary(libName);
|
||||||
- }
|
- nativeLibraryPath = libName;
|
||||||
- catch(UnsatisfiedLinkError e) {
|
+ System.load("@JNIPATH@/" + System.mapLibraryName("jnidispatch"));
|
||||||
|
+ nativeLibraryPath = "@JNIPATH@/" + System.mapLibraryName("jnidispatch");
|
||||||
|
}
|
||||||
|
catch(UnsatisfiedLinkError e) {
|
||||||
- loadNativeLibraryFromJar();
|
- loadNativeLibraryFromJar();
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
- /**
|
- /**
|
||||||
- * Extracts and loads the JNA stub library from jna.jar
|
- * Attempts to load the native library resource from the filesystem,
|
||||||
|
- * extracting the JNA stub library from jna.jar if not already available.
|
||||||
- */
|
- */
|
||||||
- private static void loadNativeLibraryFromJar() {
|
- private static void loadNativeLibraryFromJar() {
|
||||||
- String libname = System.mapLibraryName("jnidispatch");
|
- String libname = System.mapLibraryName("jnidispatch");
|
||||||
- String resourceName = getNativeLibraryResourcePath() + "/" + libname;
|
- String arch = System.getProperty("os.arch");
|
||||||
|
- String name = System.getProperty("os.name");
|
||||||
|
- String resourceName = getNativeLibraryResourcePath(Platform.getOSType(), arch, name) + "/" + libname;
|
||||||
- URL url = Native.class.getResource(resourceName);
|
- URL url = Native.class.getResource(resourceName);
|
||||||
-
|
-
|
||||||
- // Add an ugly hack for OpenJDK (soylatte) - JNI libs use the usual .dylib extension
|
- // Add an ugly hack for OpenJDK (soylatte) - JNI libs use the usual
|
||||||
- if (url == null && Platform.isMac() && resourceName.endsWith(".dylib")) {
|
- // .dylib extension
|
||||||
|
- if (url == null && Platform.isMac()
|
||||||
|
- && resourceName.endsWith(".dylib")) {
|
||||||
- resourceName = resourceName.substring(0, resourceName.lastIndexOf(".dylib")) + ".jnilib";
|
- resourceName = resourceName.substring(0, resourceName.lastIndexOf(".dylib")) + ".jnilib";
|
||||||
- url = Native.class.getResource(resourceName);
|
- url = Native.class.getResource(resourceName);
|
||||||
- }
|
- }
|
||||||
@ -76,8 +87,15 @@ diff -ur jna-3.0.9/src/com/sun/jna/Native.java jna-3.0.9.orig/src/com/sun/jna/Na
|
|||||||
-
|
-
|
||||||
- File lib = null;
|
- File lib = null;
|
||||||
- if (url.getProtocol().toLowerCase().equals("file")) {
|
- if (url.getProtocol().toLowerCase().equals("file")) {
|
||||||
- // NOTE: use older API for 1.3 compatibility
|
- try {
|
||||||
- lib = new File(URLDecoder.decode(url.getPath()));
|
- lib = new File(url.toURI());
|
||||||
|
- }
|
||||||
|
- catch(URISyntaxException e) {
|
||||||
|
- lib = new File(url.getPath());
|
||||||
|
- }
|
||||||
|
- if (!lib.exists()) {
|
||||||
|
- throw new Error("File URL " + url + " could not be properly decoded");
|
||||||
|
- }
|
||||||
- }
|
- }
|
||||||
- else {
|
- else {
|
||||||
- InputStream is = Native.class.getResourceAsStream(resourceName);
|
- InputStream is = Native.class.getResourceAsStream(resourceName);
|
||||||
@ -88,10 +106,14 @@ diff -ur jna-3.0.9/src/com/sun/jna/Native.java jna-3.0.9.orig/src/com/sun/jna/Na
|
|||||||
- FileOutputStream fos = null;
|
- FileOutputStream fos = null;
|
||||||
- try {
|
- try {
|
||||||
- // Suffix is required on windows, or library fails to load
|
- // Suffix is required on windows, or library fails to load
|
||||||
- // Let Java pick the suffix
|
- // Let Java pick the suffix, except on windows, to avoid
|
||||||
- lib = File.createTempFile("jna", null);
|
- // problems with Web Start.
|
||||||
|
- lib = File.createTempFile("jna", Platform.isWindows()?".dll":null);
|
||||||
- lib.deleteOnExit();
|
- lib.deleteOnExit();
|
||||||
- if (Platform.deleteNativeLibraryAfterVMExit()) {
|
- ClassLoader cl = Native.class.getClassLoader();
|
||||||
|
- if (Platform.deleteNativeLibraryAfterVMExit()
|
||||||
|
- && (cl == null
|
||||||
|
- || cl.equals(ClassLoader.getSystemClassLoader()))) {
|
||||||
- Runtime.getRuntime().addShutdownHook(new DeleteNativeLibrary(lib));
|
- Runtime.getRuntime().addShutdownHook(new DeleteNativeLibrary(lib));
|
||||||
- }
|
- }
|
||||||
- fos = new FileOutputStream(lib);
|
- fos = new FileOutputStream(lib);
|
||||||
@ -110,12 +132,11 @@ diff -ur jna-3.0.9/src/com/sun/jna/Native.java jna-3.0.9.orig/src/com/sun/jna/Na
|
|||||||
- try { fos.close(); } catch(IOException e) { }
|
- try { fos.close(); } catch(IOException e) { }
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
+ System.load("@JNIPATH@/" + System.mapLibraryName("jnidispatch"));
|
- unpacked = true;
|
||||||
+ } catch(UnsatisfiedLinkError e) {
|
+ throw new RuntimeException(e);
|
||||||
+ throw new RuntimeException(e);
|
|
||||||
}
|
}
|
||||||
- System.load(lib.getAbsolutePath());
|
- System.load(lib.getAbsolutePath());
|
||||||
|
- nativeLibraryPath = lib.getAbsolutePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Only in jna-3.0.9.orig/src/com/sun/jna: Native.java~
|
|
@ -1,6 +1,7 @@
|
|||||||
--- jna-3.0.4-svn700/build.xml 2008-10-01 12:57:20.000000000 -0400
|
diff -up ./build.xml.tests-headless ./build.xml
|
||||||
+++ jna-3.0.4-svn700.orig/build.xml 2008-10-01 12:57:16.000000000 -0400
|
--- ./build.xml.tests-headless 2009-11-09 10:35:40.000000000 +0100
|
||||||
@@ -427,6 +427,7 @@
|
+++ ./build.xml 2009-11-09 10:36:06.000000000 +0100
|
||||||
|
@@ -466,6 +466,7 @@
|
||||||
<jvmarg value="-Djna.protected=true"/>
|
<jvmarg value="-Djna.protected=true"/>
|
||||||
<jvmarg value="-Djna.builddir=${build}"/>
|
<jvmarg value="-Djna.builddir=${build}"/>
|
||||||
<jvmarg value="${vmopt.arch}"/>
|
<jvmarg value="${vmopt.arch}"/>
|
@ -1,57 +0,0 @@
|
|||||||
diff -ur jna-3.0.4-svn729/native/callback.c jna-3.0.4-svn729.orig/native/callback.c
|
|
||||||
--- jna-3.0.4-svn729/native/callback.c 2008-09-07 13:32:02.000000000 -0400
|
|
||||||
+++ jna-3.0.4-svn729.orig/native/callback.c 2008-10-21 00:05:24.000000000 -0400
|
|
||||||
@@ -119,6 +119,42 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
+call_thread_uncaught(JNIEnv *env)
|
|
||||||
+{
|
|
||||||
+ jthrowable e;
|
|
||||||
+ jclass threadCls;
|
|
||||||
+ jclass handlerCls;
|
|
||||||
+ jmethodID mid;
|
|
||||||
+ jobject threadObj;
|
|
||||||
+ jobject handler;
|
|
||||||
+
|
|
||||||
+ /* Get the exception */
|
|
||||||
+ e = (*env)->ExceptionOccurred(env);
|
|
||||||
+
|
|
||||||
+ /* Now clear it from JNI's point of view, holding our ref to it */
|
|
||||||
+ (*env)->ExceptionClear(env);
|
|
||||||
+
|
|
||||||
+ threadCls = (*env)->FindClass(env, "java/lang/Thread");
|
|
||||||
+ if (threadCls == NULL)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ mid = (*env)->GetMethodID(env, threadCls, "getCurrentThread",
|
|
||||||
+ "()Ljava/lang/Thread;");
|
|
||||||
+ threadObj = (*env)->CallStaticObjectMethod(env, threadCls, mid);
|
|
||||||
+ mid = (*env)->GetMethodID(env, threadCls, "getUncaughtExceptionHandler",
|
|
||||||
+ "()Ljava/lang/Thread$UncaughtExceptionHandler;");
|
|
||||||
+ handler = (*env)->CallObjectMethod(env, threadObj, mid);
|
|
||||||
+ if (handler == NULL)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ handlerCls = (*env)->GetObjectClass(env, handler);
|
|
||||||
+ mid = (*env)->GetMethodID(env, handlerCls, "uncaughtException",
|
|
||||||
+ "(Ljava/lang/Thread;Ljava/lang/Throwable;)V");
|
|
||||||
+
|
|
||||||
+ (*env)->CallObjectMethod(env, handler, mid, threadObj, e);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
callback_invoke(JNIEnv* env, callback *cb, ffi_cif* cif, void *resp, void **cbargs) {
|
|
||||||
jobject self;
|
|
||||||
|
|
||||||
@@ -140,7 +176,8 @@
|
|
||||||
}
|
|
||||||
result = (*env)->CallObjectMethod(env, self, cb->methodID, array);
|
|
||||||
if ((*env)->ExceptionCheck(env)) {
|
|
||||||
- fprintf(stderr, "JNA: uncaught exception in callback, continuing\n");
|
|
||||||
+ /* Toss it over to the current thread's uncaught handler */
|
|
||||||
+ call_thread_uncaught(env);
|
|
||||||
memset(resp, 0, cif->rtype->size);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Only in jna-3.0.4-svn729.orig/native: callback.c~
|
|
@ -1,26 +0,0 @@
|
|||||||
diff -ur jna-3.0.4-svn729/src/com/sun/jna/Function.java jna-3.0.4-svn729.orig/src/com/sun/jna/Function.java
|
|
||||||
--- jna-3.0.4-svn729/src/com/sun/jna/Function.java 2008-10-14 19:47:44.000000000 -0400
|
|
||||||
+++ jna-3.0.4-svn729.orig/src/com/sun/jna/Function.java 2008-10-14 19:48:00.000000000 -0400
|
|
||||||
@@ -314,6 +314,20 @@
|
|
||||||
String s = invokeString(callingConvention, args, true);
|
|
||||||
result = s != null ? new WString(s) : null;
|
|
||||||
}
|
|
||||||
+ else if (returnType == String[].class) {
|
|
||||||
+ Pointer tmp = invokePointer(callingConvention, args);
|
|
||||||
+ if (tmp != null)
|
|
||||||
+ result = tmp.getStringArray(0);
|
|
||||||
+ else
|
|
||||||
+ result = null;
|
|
||||||
+ }
|
|
||||||
+ else if (returnType == WString[].class) {
|
|
||||||
+ Pointer tmp = invokePointer(callingConvention, args);
|
|
||||||
+ if (tmp != null)
|
|
||||||
+ result = tmp.getStringArray(0, true);
|
|
||||||
+ else
|
|
||||||
+ result = null;
|
|
||||||
+ }
|
|
||||||
else if (Pointer.class.isAssignableFrom(returnType)) {
|
|
||||||
result = invokePointer(callingConvention, args);
|
|
||||||
}
|
|
||||||
Only in jna-3.0.4-svn729.orig/src/com/sun/jna: Function.java~
|
|
||||||
Only in jna-3.0.4-svn729/src/com/sun/jna: Function.java.nativemapped-array
|
|
59
jna.spec
59
jna.spec
@ -1,6 +1,6 @@
|
|||||||
Name: jna
|
Name: jna
|
||||||
Version: 3.0.9
|
Version: 3.2.4
|
||||||
Release: 5%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Pure Java access to native libraries
|
Summary: Pure Java access to native libraries
|
||||||
|
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -9,33 +9,29 @@ URL: https://jna.dev.java.net/
|
|||||||
# The source for this package was pulled from upstream's vcs. Use the
|
# The source for this package was pulled from upstream's vcs. Use the
|
||||||
# following commands to generate the tarball:
|
# following commands to generate the tarball:
|
||||||
# svn export https://jna.dev.java.net/svn/jna/tags/%{version}/jnalib/ --username guest jna-%{version}
|
# svn export https://jna.dev.java.net/svn/jna/tags/%{version}/jnalib/ --username guest jna-%{version}
|
||||||
# rm dist/*
|
# rm jna-%{version}/dist/*
|
||||||
# tar -cjf jna-%{version}.tar.bz2 jna-%{version}
|
# tar -cjf jna-%{version}.tar.bz2 jna-%{version}
|
||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
# This patch is Fedora-specific for now until we get the huge
|
# This patch is Fedora-specific for now until we get the huge
|
||||||
# JNI library location mess sorted upstream
|
# JNI library location mess sorted upstream
|
||||||
Patch1: jna-3.0.2-loadlibrary.patch
|
Patch1: jna-3.2.4-loadlibrary.patch
|
||||||
# The X11 tests currently segfault; overall I think the X11 JNA stuff is just a
|
# The X11 tests currently segfault; overall I think the X11 JNA stuff is just a
|
||||||
# Really Bad Idea, for relying on AWT internals, using the X11 API at all,
|
# Really Bad Idea, for relying on AWT internals, using the X11 API at all,
|
||||||
# and using a complex API like X11 through JNA just increases the potential
|
# and using a complex API like X11 through JNA just increases the potential
|
||||||
# for problems.
|
# for problems.
|
||||||
Patch2: jna-tests-headless.patch
|
Patch2: jna-3.2.4-tests-headless.patch
|
||||||
# https://jna.dev.java.net/issues/show_bug.cgi?id=90
|
|
||||||
Patch3: jna-3.0.4-nativemapped-array.patch
|
|
||||||
# Not yet sent upstream - haven't decided whether it's a good idea yet,
|
|
||||||
# but keeping around here for now.
|
|
||||||
Patch5: jna-callback-exception.patch
|
|
||||||
# https://jna.dev.java.net/issues/show_bug.cgi?id=95
|
|
||||||
Patch6: jna-3.0.9-linux-nomaplibrary.patch
|
|
||||||
# https://jna.dev.java.net/issues/show_bug.cgi?id=98
|
|
||||||
Patch7: jna-3.0.9-processopen.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
BuildRequires: java-devel >= 1.6 ant jpackage-utils ant-nodeps
|
BuildRequires: java-devel >= 1.6 ant jpackage-utils ant-nodeps
|
||||||
BuildRequires: libX11-devel libXt-devel libffi-devel
|
BuildRequires: libX11-devel libXt-devel libffi-devel
|
||||||
# We manually require libffi because find-requires doesn't work
|
# We manually require libffi because find-requires doesn't work
|
||||||
# inside jars.
|
# inside jars.
|
||||||
Requires: java >= 1:1.6.0 jpackage-utils
|
Requires: java >= 1:1.6.0 jpackage-utils libffi
|
||||||
|
# for ExcludeArch see bug: 468831
|
||||||
|
%if 0%{?rhel} < 6
|
||||||
|
ExcludeArch: ppc ppc64
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
JNA provides Java programs easy access to native shared libraries
|
JNA provides Java programs easy access to native shared libraries
|
||||||
@ -56,14 +52,20 @@ Requires: %{name} = %{version}-%{release}
|
|||||||
This package contains the javadocs for %{name}.
|
This package contains the javadocs for %{name}.
|
||||||
|
|
||||||
|
|
||||||
|
%package examples
|
||||||
|
Summary: Examples for %{name}
|
||||||
|
Group: Documentation
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
|
||||||
|
%description examples
|
||||||
|
This package contains the examples for %{name}.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}-%{version}
|
%setup -q -n %{name}-%{version}
|
||||||
sed -e 's|@JNIPATH@|%{_libdir}/%{name}|' %{PATCH1} | patch -p1
|
sed -e 's|@JNIPATH@|%{_libdir}/%{name}|' %{PATCH1} | patch -p1
|
||||||
%patch2 -p1 -b .tests-headless
|
%patch2 -p1 -b .tests-headless
|
||||||
%patch3 -p1 -b .nativemapped-array
|
|
||||||
#%patch5 -p1 -b .callback-exception
|
|
||||||
%patch6 -p1 -b .linux-nomaplibrary
|
|
||||||
%patch7 -p1 -b .processopen
|
|
||||||
|
|
||||||
# all java binaries must be removed from the sources
|
# all java binaries must be removed from the sources
|
||||||
find . -name '*.jar' -exec rm -f '{}' \;
|
find . -name '*.jar' -exec rm -f '{}' \;
|
||||||
@ -80,7 +82,7 @@ chmod 0644 LICENSE.txt
|
|||||||
%build
|
%build
|
||||||
# We pass -Ddynlink.native which comes from our patch because
|
# We pass -Ddynlink.native which comes from our patch because
|
||||||
# upstream doesn't want to default to dynamic linking.
|
# upstream doesn't want to default to dynamic linking.
|
||||||
ant jar -Dcflags_extra.native="%{optflags}" -Ddynlink.native=true -Dnomixedjar.native=true
|
ant -Dcflags_extra.native="%{optflags}" -Ddynlink.native=true -Dnomixedjar.native=true jar examples
|
||||||
ant javadoc
|
ant javadoc
|
||||||
|
|
||||||
|
|
||||||
@ -89,6 +91,7 @@ rm -rf %{buildroot}
|
|||||||
|
|
||||||
# jars
|
# jars
|
||||||
install -D -m 644 build*/%{name}.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
|
install -D -m 644 build*/%{name}.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
|
||||||
|
install -D -m 644 build*/examples.jar %{buildroot}%{_javadir}/%{name}-examples-%{version}.jar
|
||||||
(cd %{buildroot}%{_javadir}/; for jar in `ls *-%{version}.jar`; do ln -s $jar `echo $jar | sed -e 's/-%{version}//'`; done)
|
(cd %{buildroot}%{_javadir}/; for jar in `ls *-%{version}.jar`; do ln -s $jar `echo $jar | sed -e 's/-%{version}//'`; done)
|
||||||
# NOTE: JNA has highly custom code to look for native jars in this
|
# NOTE: JNA has highly custom code to look for native jars in this
|
||||||
# directory. Since this roughly matches the jpackage guidelines,
|
# directory. Since this roughly matches the jpackage guidelines,
|
||||||
@ -109,14 +112,28 @@ rm -rf %{buildroot}
|
|||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc LICENSE.txt
|
%doc LICENSE.txt
|
||||||
%{_libdir}/%{name}
|
%{_libdir}/%{name}
|
||||||
%{_javadir}/*.jar
|
%{_javadir}/%{name}.jar
|
||||||
|
%{_javadir}/%{name}-%{version}.jar
|
||||||
|
|
||||||
|
|
||||||
%files javadoc
|
%files javadoc
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_javadocdir}/%{name}-%{version}
|
%{_javadocdir}/%{name}-%{version}
|
||||||
|
|
||||||
|
|
||||||
|
%files examples
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_javadir}/%{name}-examples.jar
|
||||||
|
%{_javadir}/%{name}-examples-%{version}.jar
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Nov 14 2009 Levente Farkas <lfarkas@lfarkas.org> - 3.2.4-1
|
||||||
|
- Rebase on upstream 3.2.4
|
||||||
|
|
||||||
|
* Thu Oct 29 2009 Lubomir Rintel <lkundrak@v3.sk> - 3.0.9-6
|
||||||
|
- Add examples subpackage
|
||||||
|
|
||||||
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.9-5
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.9-5
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user