[fedora-java] libvirt-java bindings
Daniel Veillard
veillard at redhat.com
Wed Jul 2 13:37:36 UTC 2008
On Wed, Jul 02, 2008 at 11:30:09AM +0100, Andrew Haley wrote:
> Mary Ellen Foster wrote:
> > 2008/7/1 David Walluck <david at zarb.org>:
> >> Mary Ellen Foster wrote:
> >> | I have one recent package that does this (specifies openjdk on F9+ and
> >> | icedtea on F8) and one that doesn't (just wants java >= 1.5). The
> >> | first package uses JNI and needs a Sun-like JVM to work (or at least
> >> | it took more autotools hacking than I cared to try to make it work),
> >> | and if I just put Requires: java it tended to grab gcj. I guess I
> >> | could also put java > 1.5, but the issue isn't the 1.5-ness, it's the
> >> | Sun-style JNI classes.
> >>
> >> This is not an issue with the java-devel packages, but rather an issue
> >> with either the upstream configure or an issue with the GCJ packaging.
> >>
> >> If it is lack of JNI support in GCJ, that is one thing. If it is simply
> >> that the package is expecting a differnt layout that is another.
> >
> > I just did a bit of hacking, and it is possible to build the package
> > against gcj instead of openjdk. There were two things to fix:
> > - the "configure" script followed symlinks from javac to find the JNI
> > include dir. Since the symlinks for gcj ground out at /usr/bin/ecj, it
> > ended up looking for /usr/include/jni.h.
>
> Hmm. This package assumes that the chain of symlinks ends at the installed
> binary, which must be in the jdk dir.
>
> /usr/bin/javac -->
> /etc/alternatives/javac -->
> /usr/lib/jvm/java-1.4.2-gcj/bin/javac -->
> /usr/bin/ecj
I changed libvirt-java configure.in to walk the chain of symlinks starting
from javah/javac to find the JDK location and its includes.
That seems to work pretty well in practice, and with that in place and the
-source 1.5 cleanup for ecj the package build and generates rpms without
problems on a variety of platforms:
RHEL-4: works with IBM 1.5.0
RHEL-5: works with IBM/SUN/BEA 1.5.0
fails with gcj because it's 1.4 and the bindings use enums
Fedora8: works with IcedTea-1.7 and java-1.5.0-gcj-devel
Fedora9: works with OpenJDK-1.6.0 and java-1.5.0-gcj-devel
thanks for the feedback !
Daniel
--
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard | virtualization library http://libvirt.org/
veillard at redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
More information about the fedora-devel-java-list
mailing list