Hi Ximin,
On Thu, Dec 08, 2016 at 12:28:00PM +0000, Ximin Luo wrote:
> Ximin Luo:
> > Andreas Tille:
> >> compile:
> >> [mkdir] Created dir:
> >> /build/biojava3-live-3.1.0+dfsg/build/biojava3-structure/classes
> >> [javac]
> >> /build/biojava3-live-3.1.0+dfsg/biojava3-structure/build.xml:72: warning:
> >> 'includeantruntime' was not set, defaulting to build.sysclasspath=last;
> >> set to false for repeatable builds
> >> [javac] Compiling 342 source files to
> >> /build/biojava3-live-3.1.0+dfsg/build/biojava3-structure/classes
> >> [javac]
> >> /build/biojava3-live-3.1.0+dfsg/biojava3-structure/src/main/java/org/biojava/bio/structure/asa/AsaCalculator.java:8:
> >> error: package javax.vecmath does not exist
> >> [javac] import javax.vecmath.Point3d;
> >> [javac] ^
> >
> > Hey Andreas,
> >
> > The error occurs because either you're missing a dependency on
> > libvecmath-java, and/or because biojava3-live's build files can't find it
> > on the system.
> >
> > If I remember correctly, this didn't happen for Jmol 12 because it bundles
> > all the class files of its dependencies inside Jmol.jar. This isn't what we
> > like to do for Debian, so I did things differently for Jmol 14 - add a
> > Class-Path attribute inside the jar manifest, to point to the other jars
> > instead.
> >
> > The solution for biojava3-live will depend on the build system; for ANT you
> > can take a look at my patches for Jmol. Its online documentation is quite
> > good, and is how I learnt to work with it many years ago.
> >
>
> To clarify, this is also an upstream bug. If
> org/biojava/bio/structure/asa/AsaCalculator.java (and the other files)
> directly use classes from vecmath, then their build process should be
> searching for and using vecmath.jar, rather than relying on Jmol to include
> it transitively.
>
> There seems to be some more documentation in debian/{README.Debian,build.xml}
> about this. Probably you just need to add an extra entry for vecmath.
Ahh, the latter hint was quite helpful. I did:
$ svn diff
Index: build.xml
===================================================================
--- build.xml (Revision 23266)
+++ build.xml (Arbeitskopie)
@@ -40,6 +40,7 @@
<include name="hamcrest.jar"/>
<include name="json-simple.jar"/>
<include name="log4j-1.2.jar"/>
+ <include name="vecmath.jar"/>
</fileset>
<fileset dir="${dist.dir}">
<include name="*.jar"/>
Index: changelog
===================================================================
--- changelog (Revision 23269)
+++ changelog (Arbeitskopie)
@@ -4,6 +4,7 @@
* Watch file only reports 3.x series
* cme fix dpkg-control
* debhelper 10
+ * Build-Depends: libvecmath-java, add vecmath.jar to debian/build.xml
-- Andreas Tille <[email protected]> Thu, 08 Dec 2016 11:34:58 +0100
Index: control
===================================================================
--- control (Revision 23269)
+++ control (Arbeitskopie)
@@ -22,7 +22,8 @@
icedtea-netx,
libhamcrest-java,
libjson-simple-java (>= 1.1.1),
- liblog4j1.2-java
+ liblog4j1.2-java,
+ libvecmath-java
Standards-Version: 3.9.8
Vcs-Browser:
https://anonscm.debian.org/viewvc/debian-med/trunk/packages/biojava3/trunk/
Vcs-Svn: svn://anonscm.debian.org/debian-med/trunk/packages/biojava3/trunk/
Which solved the said error but the next problem now smells jmol related:
jar:
[jar] Building jar:
/build/biojava3-live-3.1.0+dfsg/dist/biojava3-structure.jar
BUILD SUCCESSFUL
Total time: 5 seconds
cd biojava3-structure-gui && ant jar
Buildfile: /build/biojava3-live-3.1.0+dfsg/biojava3-structure-gui/build.xml
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.
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.
Kind regards
Andreas.
--
http://fam-tille.de