FS#16492 - [soprano] does not find libjvm.so (again)

Attached to Project: Arch Linux
Opened by mutlu inek (mutlu_inek) - Tuesday, 06 October 2009, 20:45 GMT
Last edited by Pierre Schmitz (Pierre) - Tuesday, 26 January 2010, 17:41 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Pierre Schmitz (Pierre)
Andrea Scarpino (BaSh)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

============
Description:
============

The Sesame 2 backend of Soprano does not find the Java VM.

This is the exact problem I complained about is this bug: http://bugs.archlinux.org/task/16162
The bug was marked as fixed when this version of soprano was released, but it is not. It is also the same bug as #16194.

=================
Package versions:
=================

soprano 2.3.1-1
jre 6u16-1

===================
Steps to reproduce:
===================

Install Sun's JRE and Soprano. Start Nepomuk from the Systemsettings KCM. Check ~/.kde4/share/apps/nepomuk/repository/main/data and you will see that it uses the Redland backend. This also means that Strigi cannot be enabled from that KCM, resulting in the infamous error "Strigi service failed to initialize, most likely due to an installation problem."

==========================
Steps to "fix" this issue:
==========================

Edit /etc/ld.so.conf, add the line /opt/java/jre/lib/i386/server, then run ldconfig.

============================
Proof that this is the case:
============================

$ ldd /usr/lib/soprano/libsoprano_sesame2backend.so
[...]
libjvm.so => not found
[...]

$ locate libjvm.so
/opt/java/jre/lib/i386/client/libjvm.so
/opt/java/jre/lib/i386/server/libjvm.so

$ sudo nano /etc/ld.so.conf
==> I edited the files as described above.

$ sudo ldconfig

$ ldd /usr/lib/soprano/libsoprano_sesame2backend.so
[...]
libjvm.so => /opt/java/jre/lib/i386/server/libjvm.so (0xb7441000)
[...]

This task depends upon

Closed by  Pierre Schmitz (Pierre)
Tuesday, 26 January 2010, 17:41 GMT
Reason for closing:  Won't fix
Comment by Pierre Schmitz (Pierre) - Tuesday, 06 October 2009, 21:10 GMT
This might be due to pacman/makepkg 3.3.1. I'll try to rebuild soprano with "unset LDFLAGS" added to the build() function.
Comment by Pierre Schmitz (Pierre) - Tuesday, 06 October 2009, 21:27 GMT
Nope, that did not change anything. It seems that only i686 is affected though. ldd does not work here so you have to use this to check if both jres are linked: readelf -d /usr/lib/soprano/libsoprano_sesame2backend.so|grep rpath

I suggest to remove the non-working workaround and change depends from java-runtime to openjdk6; jre isn't in extra anyway.
Comment by mutlu inek (mutlu_inek) - Tuesday, 06 October 2009, 23:16 GMT
I get this:

$ readelf -d /usr/lib/soprano/libsoprano_sesame2backend.so|grep rpath
0x0000000f (RPATH) Library rpath: [/usr/lib:/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client]

Anything else I could do?
Comment by Ray Rashif (schivmeister) - Tuesday, 03 November 2009, 21:59 GMT
From http://tiny.cc/hilariouslylonglink it appears both JRE and OpenJDK work, and I can personally vouch on the former because I've been using that particular fix instead of editing ld.so.conf.

Now do we open tasks for both jre and openjdk to incorporate this single symlink post-install? Or do we just staple it upstream, put some info on the wiki and close this and all related tasks along?
Comment by Andrea Scarpino (BaSh) - Tuesday, 26 January 2010, 16:38 GMT
status of this with the new soprano?
Comment by Pierre Schmitz (Pierre) - Tuesday, 26 January 2010, 17:40 GMT
Status is: it only works with openjdk6 and wont fix. KDE 4.4 wont use it anyway.

Loading...