Andreas Tille:
> [..]
>
> compile:
> [mkdir] Created dir:
> /build/biojava3-live-3.1.0+dfsg/build/biojava3-structure-gui/classes
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/build.xml:73: warning:
> 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set
> to false for repeatable builds
> [javac] Compiling 109 source files to
> /build/biojava3-live-3.1.0+dfsg/build/biojava3-structure-gui/classes
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/MyJmolStatusListener.java:34:
> error: package org.jmol.constant does not exist
> [javac] import org.jmol.constant.EnumCallback;
> [javac] ^
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/MyJmolStatusListener.java:114:
> error: cannot find symbol
> [javac] public void notifyCallback(EnumCallback arg0, Object[] arg1) {
> [javac] ^
> [javac] symbol: class EnumCallback
> [javac] location: class MyJmolStatusListener
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/MyJmolStatusListener.java:120:
> error: cannot find symbol
> [javac] public boolean notifyEnabled(EnumCallback arg0) {
> [javac] ^
> [javac] symbol: class EnumCallback
> [javac] location: class MyJmolStatusListener
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/StructureAlignmentJmol.java:445:
> error: cannot find symbol
> [javac] String atomInfo = viewer.getAtomInfo(pos);
> [javac] ^
> [javac] symbol: method getAtomInfo(int)
> [javac] location: variable viewer of type JmolViewer
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/StructureAlignmentJmol.java:478:
> error: cannot find symbol
> [javac] String atomInfo = viewer.getAtomInfo(pos);
> [javac] ^
> [javac] symbol: method getAtomInfo(int)
> [javac] location: variable viewer of type JmolViewer
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/MyJmolStatusListener.java:36:
> error: MyJmolStatusListener is not abstract and does not override abstract
> method resizeInnerPanel(String) in JmolStatusListener
> [javac] public class MyJmolStatusListener implements JmolStatusListener {
> [javac] ^
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/MyJmolStatusListener.java:139:
> error: resizeInnerPanel(String) in MyJmolStatusListener cannot implement
> resizeInnerPanel(String) in JmolStatusListener
> [javac] public void resizeInnerPanel(String data) {
> [javac] ^
> [javac] return type void is not compatible with int[]
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/MyJmolStatusListener.java:79:
> error: name clash: notifyCallback(int,Object[]) in MyJmolStatusListener
> overrides a method whose erasure is the same as another method, yet neither
> overrides the other
> [javac] public void notifyCallback(int arg0, Object[] arg1) {
> [javac] ^
> [javac] first method: notifyCallback(CBK,Object[]) in
> JmolCallbackListener
> [javac] second method: notifyCallback(EnumCallback,Object[]) in
> MyJmolStatusListener
> [javac]
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/MyJmolStatusListener.java:84:
> error: name clash: notifyEnabled(int) in MyJmolStatusListener overrides a
> method whose erasure is the same as another method, yet neither overrides the
> other
> [javac] public boolean notifyEnabled(int arg0) {
> [javac] ^
> [javac] first method: notifyEnabled(CBK) in JmolCallbackListener
> [javac] second method: notifyEnabled(EnumCallback) in
> MyJmolStatusListener
> [javac] Note:
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/src/main/java/org/biojava/bio/structure/align/gui/jmol/JmolPanel.java
> uses or overrides a deprecated API.
> [javac] Note: Recompile with -Xlint:deprecation for details.
> [javac] Note: Some input files use unchecked or unsafe operations.
> [javac] Note: Recompile with -Xlint:unchecked for details.
> [javac] 9 errors
>
> BUILD FAILED
> /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/build.xml:73: Compile
> failed; see the compiler error output for details.
>
This basically means that Jmol changed its API between version 12 and 14. I
don't think I messed up the packaging, the missing things like
org.jmol.constant.EnumCallback are not even in the current source code.
Someone will have to go through the changes and make biojava3-live work with
Jmol 14 again, this involves Java coding. What I normally do is grep the source
code to see if there's anything "similar" in the current source. Or perhaps
upstream has a patch, commit, or ticket lying around somewhere where this is
already done or half-done.
To avoid problems like this in the future, it's recommended to only use things
that are clearly labeled as public API. The current version of Jmol has a
src/org/jmol/api/ directory, perhaps you can edit the currently-failing code to
use this instead.
Or, if it is already an old/abandoned project (I notice that biojava4-live
exists too) I suggest to consider just removing it from Debian.
> Total time: 2 seconds
>
>
> BTW, if it helps I could migrate biojava3-live from SVN to Git if this
> might be more convenient for interested people to directly change things
> in VCS.
>
That would help me if I had time to work on it, but probably not directly on
the code, for another few weeks.
X
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git