Bug#627683: libcdk-java: Cinfony does not work with Debian's CDK

Adrià Cereto Massagué ssorgatem at gmail.com
Mon May 23 16:10:00 UTC 2011


Package: libcdk-java
Version: 1:1.2.8-1
Severity: normal

Cinfony (http://code.google.com/p/cinfony/) is a python wrapper which presents
a common api for several chemimformatics toolkits. Only two of those toolkits
are packaged for debian: OpenBabel and CDK.

So I tried to use it with the debian packaged CDK, but it seems to be different
from the upstream. Also, upstream CDK consists of a single jar file, while in
debian I can see it split in a bunch of them. I tried too repackaging the
contents of all those jars into a single one, but the error I get is the same
(which means that the CDK is found but something goes wrong when loading
it...). Also, while I was repacking it into a single jar, I noticed that there
where some missing directories from upstream in the directory structure.

How to reproduce it:
ssorgatem:/tmp$ export JPYPE_JVM=/usr/lib/jvm/java-6-openjdk/jre/lib/
amd64/server/libjvm.so

ssorgatem:/tmp$ python
Python 2.6.6 (r266:84292, Apr 20 2011, 09:34:38)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information
.
>>> import os, glob
>>> classpath = ":".join(glob.glob('/usr/share/java/cdk*.jar'))
>>> classpath
'/usr/share/java/cdk-structgen.jar:/usr/share/java/cdk-
structgen-1.2.8.jar:/usr/share/java/cdk-libiocml-1.2.8.jar:/usr/share/java/cdk-
core.jar:/usr/share/java/cdk-standard-1.2.8.jar:/usr/share/java/cdk-
io-1.2.8.jar:/usr/share/java/cdk-builder3dtools-1.2.8.jar:/usr/share/java/cdk-
reaction-1.2.8.jar:/usr/share/java/cdk-smiles.jar:/usr/share/java/cdk-
smarts-1.2.8.jar:/usr/share/java/cdk-control-1.2.8.jar:/usr/share/java/cdk-
pdbcml.jar:/usr/share/java/cdk-sdg.jar:/usr/share/java/cdk-
builder3dtools.jar:/usr/share/java/cdk-builder3d-1.2.8.jar:/usr/share/java/cdk-
pdbcml-1.2.8.jar:/usr/share/java/cdk-qsarprotein.jar:/usr/share/java/cdk-
forcefield-1.2.8.jar:/usr/share/java/cdk-data.jar:/usr/share/java/cdk-
charges-1.2.8.jar:/usr/share/java/cdk-qsaratomic.jar:/usr/share/java/cdk-
annotation.jar:/usr/share/java/cdk-qm-1.2.8.jar:/usr/share/java/cdk-
ionpot-1.2.8.jar:/usr/share/java/cdk-nonotify.jar:/usr/share/java/cdk-
smarts.jar:/usr/share/java/cdk-core-1.2.8.jar:/usr/share/java/cdk-
ioformats.jar:/usr/share/java/cdk-diff.jar:/usr/share/java/cdk-
pcore.jar:/usr/share/java/cdk-valencycheck-1.2.8.jar:/usr/share/java/cdk-
control.jar:/usr/share/java/cdk-standard.jar:/usr/share/java/cdk-
builder3d.jar:/usr/share/java/cdk-annotation-1.2.8.jar:/usr/share/java/cdk-
valencycheck.jar:/usr/share/java/cdk-libiocml.jar:/usr/share/java/cdk-
qsarmolecular.jar:/usr/share/java/cdk-qsarionpot.jar:/usr/share/java/cdk-
dict.jar:/usr/share/java/cdk-charges.jar:/usr/share/java/cdk-
qsarionpot-1.2.8.jar:/usr/share/java/cdk-nonotify-1.2.8.jar:/usr/share/java
/cdk-forcefield.jar:/usr/share/java/cdk-inchi.jar:/usr/share/java/cdk-
render-1.2.8.jar:/usr/share/java/cdk-pdb-1.2.8.jar:/usr/share/java/cdk-
extra-1.2.8.jar:/usr/share/java/cdk-formula-1.2.8.jar:/usr/share/java/cdk-
atomtype-1.2.8.jar:/usr/share/java/cdk-extra.jar:/usr/share/java/cdk-
io.jar:/usr/share/java/cdk-render.jar:/usr/share/java/cdk-
libiomd-1.2.8.jar:/usr/share/java/cdk-qsar-1.2.8.jar:/usr/share/java/cdk-
dict-1.2.8.jar:/usr/share/java/cdk-pcore-1.2.8.jar:/usr/share/java/cdk-
data-1.2.8.jar:/usr/share/java/cdk-qsarbond.jar:/usr/share/java/cdk-
interfaces.jar:/usr/share/java/cdk-reaction.jar:/usr/share/java/cdk-
atomtype.jar:/usr/share/java/cdk-ionpot.jar:/usr/share/java/cdk-
isomorphism-1.2.8.jar:/usr/share/java/cdk-formula.jar:/usr/share/java/cdk-
fingerprint.jar:/usr/share/java/cdk-diff-1.2.8.jar:/usr/share/java/cdk-
isomorphism.jar:/usr/share/java/cdk-libiomd.jar:/usr/share/java/cdk-
smiles-1.2.8.jar:/usr/share/java/cdk-ioformats-1.2.8.jar:/usr/share/java/cdk-
qsarmolecular-1.2.8.jar:/usr/share/java/cdk-qsarcml-1.2.8.jar:/usr/share/java
/cdk-sdg-1.2.8.jar:/usr/share/java/cdk-fingerprint-1.2.8.jar:/usr/share/java
/cdk-inchi-1.2.8.jar:/usr/share/java/cdk-qsarprotein-1.2.8.jar:/usr/share/java
/cdk-qsar.jar:/usr/share/java/cdk-pdb.jar:/usr/share/java/cdk-
qsarcml.jar:/usr/share/java/cdk-qm.jar:/usr/share/java/cdk-
qsarbond-1.2.8.jar:/usr/share/java/cdk-interfaces-1.2.8.jar:/usr/share/java
/cdk-qsaratomic-1.2.8.jar'
>>> os.environ['CLASSPATH']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
    raise KeyError(key)
KeyError: 'CLASSPATH'
>>> os.environ['CLASSPATH'] = classpath
>>> from cinfony import cdk
/usr/lib/pymodules/python2.6/jpype/_pykeywords.py:18: DeprecationWarning: the
sets module is deprecated
  import sets
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/cinfony/cdk.py", line 13, in
<module>
    from cdkjpype import *
  File "/usr/local/lib/python2.6/dist-packages/cinfony/cdkjpype.py", line 59,
in <module>
    _descdict = _getdescdict()
  File "/usr/local/lib/python2.6/dist-packages/cinfony/cdkjpype.py", line 48,
in _getdescdict
    de = cdk.qsar.DescriptorEngine(cdk.qsar.DescriptorEngine.MOLECULAR)
  File "/usr/lib/pymodules/python2.6/jpype/_jclass.py", line 79, in _javaInit
    self.__javaobject__ = self.__class__.__javaclass__.newClassInstance(*args)
jpype._jexception.LinkageErrorPyRaisable: java.lang.NoClassDefFoundError:
nu/xom/ParsingException
>>>

However, it works if I use the cdk-1.2.8.jar from
http://sourceforge.net/projects/cdk/ as the only item in the classpath.

It doesn't work from jython, either:

ssorgatem:/tmp$ jython
Jython 2.5.1+ (Release_2_5_1, Aug 4 2010, 07:18:19)
[Java HotSpot(TM) 64-Bit Server VM (Sun Microsystems Inc.)] on java1.6.0_24
Type "help", "copyright", "credits" or "license" for more information.
>>> from cinfony import cdk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/share/jython/Lib/site-packages/cinfony/cdk.py", line 11, in
<module>
    from cdkjython import *
  File "/usr/share/jython/Lib/site-packages/cinfony/cdkjython.py", line 17, in
<module>
    import org.openscience.cdk as cdk
ImportError: No module named openscience
>>>



-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (900, 'testing'), (899, 'unstable'), (798, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=ca_ES.UTF-8, LC_CTYPE=ca_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libcdk-java depends on:
ii  default-jre-headless [java5 1:1.6-40     Standard Java or Java compatible R
ii  gcj-4.4-jre-headless [java5 4.4.6-2      Java runtime environment using GIJ
ii  gcj-jre-headless [java5-run 4:4.4.5-4    Java runtime environment using GIJ
ii  openjdk-6-jre-headless [jav 6b18-1.8.7-2 OpenJDK Java runtime, using Hotspo
ii  sun-java6-jre [java5-runtim 6.24-2       Sun Java(TM) Runtime Environment (

libcdk-java recommends no packages.

Versions of packages libcdk-java suggests:
pn  jchempaint                    <none>     (no description available)
ii  jmol                          12.1.42-1  Molecular Viewer

--
Adrià Cereto Massagué
Biotechnology student
Universitat Rovira i Virgili

Languages: Català, Español, English, Français, Deutsch, Português, Esperanto





More information about the pkg-java-maintainers mailing list