initial import from the F-10 branch
This commit is contained in:
parent
2dd3cefc8d
commit
4b8cd86d43
@ -0,0 +1 @@
|
||||
jna-3.0.4.svn729.tar.bz2
|
1
import.log
Normal file
1
import.log
Normal file
@ -0,0 +1 @@
|
||||
jna-3_0_4-10_svn729_fc10:EL-5:jna-3.0.4-10.svn729.fc10.src.rpm:1226331400
|
11
jna-3.0.2-loadlibrary.patch
Normal file
11
jna-3.0.2-loadlibrary.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- jna-3.0.2.default/src/com/sun/jna/Native.java 2008-02-11 16:04:47.000000000 -0500
|
||||
+++ jna-3.0.2/src/com/sun/jna/Native.java 2008-04-03 23:30:03.000000000 -0400
|
||||
@@ -85,7 +85,7 @@
|
||||
public static final int WCHAR_SIZE;
|
||||
static {
|
||||
try {
|
||||
- System.loadLibrary("jnidispatch");
|
||||
+ System.load("@JNIPATH@/" + System.mapLibraryName("jnidispatch"));
|
||||
}
|
||||
catch(UnsatisfiedLinkError e) {
|
||||
loadNativeLibrary();
|
73
jna-3.0.4-nativemapped-array.patch
Normal file
73
jna-3.0.4-nativemapped-array.patch
Normal file
@ -0,0 +1,73 @@
|
||||
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~
|
26
jna-stringarray-return.patch
Normal file
26
jna-stringarray-return.patch
Normal file
@ -0,0 +1,26 @@
|
||||
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
|
10
jna-tests-headless.patch
Normal file
10
jna-tests-headless.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- jna-3.0.4-svn700/build.xml 2008-10-01 12:57:20.000000000 -0400
|
||||
+++ jna-3.0.4-svn700.orig/build.xml 2008-10-01 12:57:16.000000000 -0400
|
||||
@@ -427,6 +427,7 @@
|
||||
<jvmarg value="-Djna.protected=true"/>
|
||||
<jvmarg value="-Djna.builddir=${build}"/>
|
||||
<jvmarg value="${vmopt.arch}"/>
|
||||
+ <jvmarg value="-Djava.awt.headless=true"/>
|
||||
<classpath><path refid="test.runpath"/></classpath>
|
||||
<formatter type="xml"/>
|
||||
<batchtest todir="${results.junit}">
|
169
jna.spec
Normal file
169
jna.spec
Normal file
@ -0,0 +1,169 @@
|
||||
Name: jna
|
||||
Version: 3.0.4
|
||||
Release: 10.svn729%{?dist}
|
||||
Summary: Pure Java access to native libraries
|
||||
|
||||
Group: Development/Libraries
|
||||
License: LGPLv2+
|
||||
URL: https://jna.dev.java.net/
|
||||
# The source for this package was pulled from upstream's vcs. Use the
|
||||
# following commands to generate the tarball:
|
||||
# svn export https://jna.dev.java.net/svn/jna/tags/%{version}/jnalib/ --username guest jna-%{version}
|
||||
# tar -cjf jna-%{version}.tar.bz2 jna-%{version}
|
||||
Source0: %{name}-%{version}.svn729.tar.bz2
|
||||
# This patch is Fedora-specific for now until we get the huge
|
||||
# JNI library location mess sorted upstream
|
||||
Patch1: jna-3.0.2-loadlibrary.patch
|
||||
# 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,
|
||||
# and using a complex API like X11 through JNA just increases the potential
|
||||
# for problems.
|
||||
Patch2: jna-tests-headless.patch
|
||||
# https://jna.dev.java.net/issues/show_bug.cgi?id=90
|
||||
Patch3: jna-3.0.4-nativemapped-array.patch
|
||||
# https://jna.dev.java.net/issues/show_bug.cgi?id=XXX
|
||||
Patch4: jna-stringarray-return.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
BuildRequires: java-devel >= 1.6 ant jpackage-utils ant-nodeps
|
||||
BuildRequires: libX11-devel libXt-devel libffi-devel
|
||||
# We manually require libffi because find-requires doesn't work
|
||||
# inside jars.
|
||||
Requires: java >= 1:1.6.0 jpackage-utils
|
||||
|
||||
%description
|
||||
JNA provides Java programs easy access to native shared libraries
|
||||
(DLLs on Windows) without writing anything but Java code. JNA's
|
||||
design aims to provide native access in a natural way with a
|
||||
minimum of effort. No boilerplate or generated code is required.
|
||||
While some attention is paid to performance, correctness and ease
|
||||
of use take priority.
|
||||
|
||||
|
||||
%package javadoc
|
||||
Summary: Javadocs for %{name}
|
||||
Group: Documentation
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
|
||||
%description javadoc
|
||||
This package contains the javadocs for %{name}.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}-svn729
|
||||
sed -e 's|@JNIPATH@|%{_libdir}/%{name}|' %{PATCH1} | patch -p1
|
||||
%patch2 -p1 -b .tests-headless
|
||||
%patch3 -p1 -b .nativemapped-array
|
||||
%patch4 -p1 -b .stringarray-return
|
||||
|
||||
# all java binaries must be removed from the sources
|
||||
find . -name '*.jar' -exec rm -f '{}' \;
|
||||
find . -name '*.class' -exec rm -f '{}' \;
|
||||
|
||||
# remove internal copy of libffi
|
||||
rm -rf native/libffi
|
||||
|
||||
# remove random unused zips
|
||||
rm dist/{src,doc}.zip
|
||||
|
||||
# clean LICENSE.txt
|
||||
sed -i 's/\r//' LICENSE.txt
|
||||
chmod 0644 LICENSE.txt
|
||||
|
||||
|
||||
%build
|
||||
# We pass -Ddynlink.native which comes from our patch because
|
||||
# upstream doesn't want to default to dynamic linking.
|
||||
ant jar -Dcflags_extra.native="%{optflags}" -Ddynlink.native=true -Dnomixedjar.native=true
|
||||
ant javadoc
|
||||
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
|
||||
# jars
|
||||
install -D -m 644 build*/%{name}.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
|
||||
(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
|
||||
# directory. Since this roughly matches the jpackage guidelines,
|
||||
# we'll leave it unchanged.
|
||||
install -d -m 755 %{buildroot}%{_libdir}/%{name}
|
||||
install -m 755 build*/native/libjnidispatch*.so %{buildroot}%{_libdir}/%{name}/
|
||||
|
||||
# javadocs
|
||||
install -p -d -m 755 %{buildroot}%{_javadocdir}/%{name}-%{version}
|
||||
cp -a doc/javadoc/* %{buildroot}%{_javadocdir}/%{name}-%{version}
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc LICENSE.txt
|
||||
%{_libdir}/%{name}
|
||||
%{_javadir}/*.jar
|
||||
|
||||
%files javadoc
|
||||
%defattr(-,root,root,-)
|
||||
%{_javadocdir}/%{name}-%{version}
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Oct 14 2008 Colin Walters <walters@redhat.com> - 3.0.4-10.svn729
|
||||
- Add patch to support String[] returns
|
||||
|
||||
* Wed Oct 01 2008 Colin Walters <walters@redhat.com> - 3.0.4-9.svn729
|
||||
- Add new patch to support NativeMapped[] which I want
|
||||
|
||||
* Wed Oct 01 2008 Colin Walters <walters@redhat.com> - 3.0.4-8.svn729
|
||||
- Update to svn r729
|
||||
- drop upstreamed typemapper patch
|
||||
|
||||
* Tue Sep 18 2008 Colin Walters <walters@redhat.com> - 3.0.4-7.svn700
|
||||
- Add patch to make typemapper always accessible
|
||||
- Add patch to skip cracktastic X11 test bits which currently fail
|
||||
|
||||
* Tue Sep 09 2008 Colin Walters <walters@redhat.com> - 3.0.4-5.svn700
|
||||
- Update to upstream SVN r700; drop all now upstreamed patches
|
||||
|
||||
* Sat Sep 06 2008 Colin Walters <walters@redhat.com> - 3.0.4-3.svn630
|
||||
- A few more patches for JGIR
|
||||
|
||||
* Thu Sep 04 2008 Colin Walters <walters@redhat.com> - 3.0.4-2.svn630
|
||||
- Add two (sent upstream) patches that I need for JGIR
|
||||
|
||||
* Thu Jul 31 2008 Colin Walters <walters@redhat.com> - 3.0.4-1.svn630
|
||||
- New upstream version, drop upstreamed patch parts
|
||||
- New patch jna-3.0.4-nomixedjar.patch which ensures that we don't
|
||||
include the .so in the .jar
|
||||
|
||||
* Fri Apr 04 2008 Colin Walters <walters@redhat.com> - 3.0.2-7
|
||||
- Add patch to use JPackage-compatible JNI library path
|
||||
- Do build debuginfo package
|
||||
- Refactor build patch greatly so it's hopefully upstreamable
|
||||
- Install .so directly to JNI directory, rather than inside jar
|
||||
- Clean up Requires/BuildRequires (thanks Mamoru Tasaka)
|
||||
|
||||
* Sun Mar 30 2008 Conrad Meyer <konrad@tylerc.org> - 3.0.2-6
|
||||
- -javadocs should be -javadoc.
|
||||
- %%files section cleaned a bit.
|
||||
|
||||
* Mon Mar 17 2008 Conrad Meyer <konrad@tylerc.org> - 3.0.2-5
|
||||
- -javadocs package should be in group "Documentation".
|
||||
|
||||
* Mon Mar 17 2008 Conrad Meyer <konrad@tylerc.org> - 3.0.2-4
|
||||
- License should be LGPLv2+, not GPLv2+.
|
||||
- Several minor fixes.
|
||||
- Fix Requires in javadoc package.
|
||||
|
||||
* Sun Mar 16 2008 Conrad Meyer <konrad@tylerc.org> - 3.0.2-3
|
||||
- Don't use internal libffi.
|
||||
|
||||
* Thu Mar 6 2008 Conrad Meyer <konrad@tylerc.org> - 3.0.2-2
|
||||
- Don't pull in jars from the web.
|
||||
|
||||
* Mon Mar 3 2008 Conrad Meyer <konrad@tylerc.org> - 3.0.2-1
|
||||
- Initial package.
|
Loading…
Reference in New Issue
Block a user