rpms/jna/EL-5 import.log, NONE, 1.1 jna-3.0.2-loadlibrary.patch, NONE, 1.1 jna-3.0.4-nativemapped-array.patch, NONE, 1.1 jna-stringarray-return.patch, NONE, 1.1 jna-tests-headless.patch, NONE, 1.1 jna.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Levente Farkas lfarkas at fedoraproject.org
Mon Nov 10 15:40:23 UTC 2008


Author: lfarkas

Update of /cvs/pkgs/rpms/jna/EL-5
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11931/EL-5

Modified Files:
	.cvsignore sources 
Added Files:
	import.log jna-3.0.2-loadlibrary.patch 
	jna-3.0.4-nativemapped-array.patch 
	jna-stringarray-return.patch jna-tests-headless.patch jna.spec 
Log Message:
initial import from the F-10 branch



--- NEW FILE import.log ---
jna-3_0_4-10_svn729_fc10:EL-5:jna-3.0.4-10.svn729.fc10.src.rpm:1226331400

jna-3.0.2-loadlibrary.patch:

--- NEW FILE jna-3.0.2-loadlibrary.patch ---
--- 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();

jna-3.0.4-nativemapped-array.patch:

--- NEW FILE jna-3.0.4-nativemapped-array.patch ---
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~

jna-stringarray-return.patch:

--- NEW FILE jna-stringarray-return.patch ---
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

jna-tests-headless.patch:

--- NEW FILE jna-tests-headless.patch ---
--- 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}">


--- NEW FILE jna.spec ---
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 at redhat.com> - 3.0.4-10.svn729
- Add patch to support String[] returns

* Wed Oct 01 2008 Colin Walters <walters at redhat.com> - 3.0.4-9.svn729
- Add new patch to support NativeMapped[] which I want

* Wed Oct 01 2008 Colin Walters <walters at redhat.com> - 3.0.4-8.svn729
- Update to svn r729
- drop upstreamed typemapper patch

* Tue Sep 18 2008 Colin Walters <walters at 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 at redhat.com> - 3.0.4-5.svn700
- Update to upstream SVN r700; drop all now upstreamed patches

* Sat Sep 06 2008 Colin Walters <walters at redhat.com> - 3.0.4-3.svn630
- A few more patches for JGIR

* Thu Sep 04 2008 Colin Walters <walters at redhat.com> - 3.0.4-2.svn630
- Add two (sent upstream) patches that I need for JGIR

* Thu Jul 31 2008 Colin Walters <walters at 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 at 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 at tylerc.org> - 3.0.2-6
- -javadocs should be -javadoc.
- %%files section cleaned a bit.

* Mon Mar 17 2008 Conrad Meyer <konrad at tylerc.org> - 3.0.2-5
- -javadocs package should be in group "Documentation".

* Mon Mar 17 2008 Conrad Meyer <konrad at 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 at tylerc.org> - 3.0.2-3
- Don't use internal libffi.

* Thu Mar 6 2008 Conrad Meyer <konrad at tylerc.org> - 3.0.2-2
- Don't pull in jars from the web.

* Mon Mar 3 2008 Conrad Meyer <konrad at tylerc.org> - 3.0.2-1
- Initial package.


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/jna/EL-5/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	4 Apr 2008 22:09:38 -0000	1.1
+++ .cvsignore	10 Nov 2008 15:39:51 -0000	1.2
@@ -0,0 +1 @@
+jna-3.0.4.svn729.tar.bz2


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/jna/EL-5/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	4 Apr 2008 22:09:38 -0000	1.1
+++ sources	10 Nov 2008 15:39:52 -0000	1.2
@@ -0,0 +1 @@
+789cf82e63d0cbc11198d3b2015d3490  jna-3.0.4.svn729.tar.bz2




More information about the fedora-extras-commits mailing list