Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 542700 - sys-cluster/openmpi: respect USE=java and provide mpi.jar
Summary: sys-cluster/openmpi: respect USE=java and provide mpi.jar
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Cluster Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-09 14:45 UTC by Martin Mokrejš
Modified: 2015-08-02 23:31 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
openmpi-1.8.7-r1.ebuild.diff (openmpi-1.8.7-r1.ebuild.diff,2.07 KB, patch)
2015-08-01 08:08 UTC, Patrice Clement
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Mokrejš 2015-03-09 14:45:16 UTC
Java packages can use mpi.jar provided by openmpi. However, Gentoo's ebuild does not provide the file. I believe it should respect USE=java as well and do:

configure --enable-mpi-java --with-jdk-bindir=/blah/jdk1.6.0_31/bin --with-jdk-headers=/blah/software/jdk1.6.0_31/include

This will be needed for sci-biology/BBmap (will appear in sci overlay).




So far I get with:

[ebuild     U  ] sys-cluster/openmpi-1.8.4-r3::science [1.8.3::science] USE="cxx fortran romio threads -cma -cuda -heterogeneous -ipv6 -mpi-threads -numa% -vt" ABI_X86="(64%*) -32% (-x32)" OPENMPI_FABRICS="-knem -ofed -open-mx -psm" OPENMPI_OFED_FEATURES="-connectx-xrc -control-hdr-padding -dynamic-sl -failover -rdmacm -udcm" OPENMPI_RM="-pbs -slurm" 0 KiB

....

/mnt/1TB/var/tmp/portage/sys-cluster/openmpi-1.8.4-r3/work/openmpi-1.8.4/configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --libdir=/usr/lib64 --sysconfdir=/etc/openmpi --enable-pretty-print-stacktrace --enable-orterun-prefix-by-default --with-hwloc=/usr --with-libltdl=external --enable-mpi-fortran=all --enable-contrib-no-build=vt --enable-mpi-cxx --without-cma --without-cuda --enable-io-romio --disable-heterogeneous --disable-ipv6 --without-verbs --without-knem --without-mx --without-psm --disable-openib-control-hdr-padding --disable-openib-connectx-xrc --disable-openib-rdmacm --disable-openib-udcm --disable-openib-dynamic-sl --disable-btl-openib-failover --without-tm --without-slurm

...

*** Java compiler
checking OSX locations... not found
checking Linux locations... found (/etc/java-config-2/current-system-vm/include)
checking --with-jdk-bindir value... sanity check ok (/usr/bin)
checking --with-jdk-headers value... sanity check ok (/etc/java-config-2/current-system-vm/include)
checking for javac... /etc/java-config-2/current-system-vm/bin/javac
checking for javah... /usr/bin/javah
checking for jar... /usr/bin/jar
checking jni.h usability... yes
checking jni.h presence... yes
checking for jni.h... yes
checking Java support available... yes

*** Java MPI bindings
checking if want Java bindings... no
Comment 1 Patrice Clement gentoo-dev 2015-03-11 09:40:33 UTC
Maybe someone from the Java team can look into this (I'm part of the herd). @Chewi: care to help?
Comment 2 Patrice Clement gentoo-dev 2015-08-01 08:08:04 UTC
Created attachment 408086 [details, diff]
openmpi-1.8.7-r1.ebuild.diff

@Chewi: could you please review this ebuild? You might pick up on the hack that is JAVA_PKG_WANT_{SOURCE,TARGET}. The OpenMPI Java bindings need to be compiled with Java 8 (I get an "Incorrect bytecode version found" error with 6 and 7). Only problem is that virtual/{jre,jdk}-1.8 aren't keyworded for ppc+ppc64. I could drop these two platforms and stick in the right virtuals. Or workaround the issue with JAVA_PKG_WANT variables as I did. Anyway, let me know.
Comment 3 James Le Cuirot gentoo-dev 2015-08-01 10:51:39 UTC
(In reply to Patrice Clement from comment #2)
> @Chewi: could you please review this ebuild? You might pick up on the hack
> that is JAVA_PKG_WANT_{SOURCE,TARGET}. The OpenMPI Java bindings need to be
> compiled with Java 8 (I get an "Incorrect bytecode version found" error with
> 6 and 7). Only problem is that virtual/{jre,jdk}-1.8 aren't keyworded for
> ppc+ppc64. I could drop these two platforms and stick in the right virtuals.
> Or workaround the issue with JAVA_PKG_WANT variables as I did. Anyway, let
> me know.

That isn't a hack, it's just a big breakage. It doesn't require Java 8 to be installed but then calls javac -source 1.8 -target 1.8 anyway. How is that not going to break on any platform? Your only option is to drop the keywords.

However, I don't think you understand what this error means. It means that the package is either using its own -source and -target flags that don't match (R)DEPEND or the flags aren't being passed at all. I'll investigate to find out which and whether Java 8 really is required.
Comment 4 James Le Cuirot gentoo-dev 2015-08-02 23:31:21 UTC
Fixed by overriding the configure check for javac to ensure it honours the -source and -target flags.