On Feb 14, 2008, at 6:48, Alessandro Magni <[EMAIL PROTECTED]> wrote:

The ongoing problems continue:

1) I've been able to build/installed JCC, thanks to my (surprising!) discovery that I needed Sun's version of Java

Surprising ??



Having installed it / setup the java alternatives, it worked by modifying the setup.py lines:

INCLUDES = {
...
  'linux2': ['/usr/lib/jvm/java-1.6.0-sun-1.6.0.04/include/',
              '/usr/lib/jvm/java-1.6.0-sun-1.6.0.04/include/linux'],
...
}

LFLAGS = {
...
'linux2': [ '-L/usr/lib/jvm/java-1.6.0-sun-1.6.0.04/lib/i386:/usr/ java/jdk1.6.0_04/jre/lib/i386/', '-Wl,-rpath=/usr/lib/jvm/java-1.6.0-sun-1.6.0.04/lib/ i386:/usr/lib/jvm/java-1.6.0-sun-1.6.0.04/lib/i386
/client:/usr/java/jdk1.6.0_04/jre/lib/i386/'],
...
}

notice that I removed '-ljava' from LFLAGS - with it it didnt work: libjava.so not found, even if I have it in the indicated paths: -rwxr-xr-x 1 root root 185K Dec 14 10:32 /usr/java/jdk1.6.0_04/jre/ lib/i386/libjava.so

Removing -ljava is going to cause the  problem you reported below.

... anyway, it compiled/installed, so why complain?

Yeah, complaining is not going to help either way.


2) Then, I'vre removed one stumbling block from the PyLucene Makefile:
my problem was that "make" gave the result:

...
/usr/src/PyLucene-2.3.0-1/lucene-java-2.3.0/common-build.xml:474: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/java/jdk1.6.0_04/jre"
...

while, in fact, that variable is correct:
echo $JAVA_HOME
/usr/lib/jvm/java-1.6.0-sun-1.6.0.04/bin


Inspired by the "WINDOWS" section, I modified (in "linux2") the line so:

ANT=JAVA_HOME=/usr/lib/jvm/java-1.6.0-sun-1.6.0.04;ant

Just as was suggested yesterday on this list. But, normally, you shouldn't have to set JAVA_HOME at all. Ant can figure it out. Then, maybe on redhat or on your install, it can't, in which case setting it can work that around but without 'bin'.


don't ask me why, but now the compile proceed much more (could you maybe update the Makefile with this change?)


BUT - it's not finished yet:

after working a lot, the make process stops here:

CFLAGS="" /usr/bin/python -m jcc --jar lucene-java-2.3.0/build/ lucene-core-2.3.0.jar --jar lucene-java-2.3.0/build/contrib/snowball/ lucene-snowball-2.3.0.jar --jar lucene-java-2.3.0/build/contrib/ highlighter/lucene-highlighter-2.3.0.jar --jar lucene-java-2.3.0/ build/contrib/analyzers/lucene-analyzers-2.3.0.jar --jar lucene- java-2.3.0/build/contrib/regex/lucene-regex-2.3.0.jar --jar lucene- java-2.3.0/build/contrib/queries/lucene-queries-2.3.0.jar --jar build/jar/extensions.jar --package java.lang java.lang.System java.lang.Runtime --package java.util java.text.SimpleDateFormat -- package java.io java.io.StringReader java.io.InputStreamReader java.io.FileInputStream --exclude org.apache.lucene.queryParser.Token --exclude org.apache.lucene.queryParser.TokenMgrError --exclude org.apache.lucene.queryParser.QueryParserTokenManager --exclude org.apache.lucene.queryParser.ParseException --python lucene -- mapping org.apache.lucene.document.Document 'get:(Ljava/lang/String;) Ljava/lang/String;' --mapping java.util.Properties 'getProperty: (Ljava/lang/String;)Ljava/lang/String;' --sequence org.apache.lucene.search.Hits 'length:()I' 'doc:(I)Lorg/apache/ lucene/document/Document;' --version 2.3.0 --files 2 --build
Traceback (most recent call last):
File "/usr/lib/python2.5/runpy.py", line 95, in run_module
  filename, loader, alter_sys)
File "/usr/lib/python2.5/runpy.py", line 52, in _run_module_code
  mod_name, mod_fname, mod_loader)
File "/usr/lib/python2.5/runpy.py", line 32, in _run_code
  exec code in run_globals
File "/usr/lib/python2.5/site-packages/JCC-1.7-py2.5-linux-i686.egg/ jcc/__init__.py", line 27, in <module>
  from jcc import cpp
File "/usr/lib/python2.5/site-packages/JCC-1.7-py2.5-linux-i686.egg/ jcc/__init__.py", line 30, in <module>
  from _jcc import initVM
ImportError: /usr/lib/python2.5/site-packages/JCC-1.7-py2.5-linux- i686.egg/jcc/_jcc.so: undefined symbol: JNI_GetDefaultJavaVMInitArgs
make: *** [compile] Error 255


So you got ant to compile Lucene from sources. Now, you need to to back to setup.py and add -ljava back to LFLAGS and rebuild jcc. This missing symbol is in that libjava library you removed and jcc is not going to function without it.

I don't understand the reason - I feel it may be related to my erasing the '-ljava' line in the setup.py of JCC.

What do you think about it?

You have the right feeling. If the jcc build failed with -ljava then you've probably got a bug in LFLAGS in the
-L flags which tell the linker where to find the libs.

Andi..



Alessandro

--

~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/  Dr.Alessandro Magni
\        Electromagnetics Division
/        INRiM Strada delle Cacce 91, 10135 Torino (ITALIA)
\        Email [EMAIL PROTECTED]
/        Tel: 0039-011-3919821  Fax: 0039-011-3919834
\        URL http://www.inrim.it/~magni
/ Our business in life is not to succeed but to continue to fail \ in high spirits. -- Robert Louis Stevenson ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to