Andreas Tille <andr...@an3as.eu> writes: > Hi Felix,
Hello Andreas! > On Sat, May 20, 2017 at 04:23:31PM +0200, Felix Natter wrote: >> > I had a first packaging centric look on megan-ce[1]. While there >> > are several problems I stumbled upon several compile errors like >> >> I cannot currently build this because my libjloda-java is at 0.0+20161018. > > It is in experimental due to freeze policy. Ok, pulled it, thanks. >> > [javac] >> > /build/megan-ce-0.0+20170515/antbuild/src/megan/blastclient/BlastProgram.java:28: >> > error: package javafx.geometry does not exist >> > [javac] import javafx.geometry.Insets; >> > [javac] ^ >> > [javac] >> > /build/megan-ce-0.0+20170515/antbuild/src/megan/blastclient/BlastProgram.java:29: >> > error: package javafx.scene does not exist >> > [javac] import javafx.scene.Scene; >> > [javac] ^ >> > [javac] >> > /build/megan-ce-0.0+20170515/antbuild/src/megan/blastclient/BlastProgram.java:30: >> > error: package javafx.scene.control does not exist >> > [javac] import javafx.scene.control.*; >> > [javac] ^ >> > [javac] >> > /build/megan-ce-0.0+20170515/antbuild/src/megan/blastclient/BlastProgram.java:31: >> > error: package javafx.scene.layout does not exist >> > [javac] import javafx.scene.layout.BorderPane; >> > [javac] ^ >> > [javac] >> > /build/megan-ce-0.0+20170515/antbuild/src/megan/blastclient/BlastProgram.java:32: >> > error: package javafx.scene.layout does not exist >> > [javac] import javafx.scene.layout.HBox; >> > [javac] ^ >> > >> > To solve this I added libopenjfx-java Build-Dependency but this does not >> > seem to help. Any idea how I could fix this? >> >> You have put the wrong openjfx jar into debian/manifest: >> >> $ jar tf /usr/share/java/openjfx/lib/javafx-mx.jar | grep javafx.geometry >> <no output> >> >> $ jar tf /usr/share/java/openjfx/jre/lib/ext/jfxrt.jar | grep javafx.geometry >> [...] >> javafx/geometry/Insets.class >> [...] > > Sounds convincing. :-) > >> This simple patch should work: >> >> diff --git a/debian/manifest b/debian/manifest >> index 9b9c713..5b60c58 100644 >> --- a/debian/manifest >> +++ b/debian/manifest >> @@ -1,3 +1,3 @@ >> /usr/share/java/megan-ce.jar: >> Main-Class: megan-ce.MeganRun >> - Class-Path: /usr/share/java/jloda.jar /usr/share/java/colt.jar >> /usr/share/java/commons-math3.jar /usr/share/java/gson.jar >> /usr/share/java/openjfx/lib/javafx-mx.jar >> + Class-Path: /usr/share/java/jloda.jar /usr/share/java/colt.jar >> /usr/share/java/commons-math3.jar /usr/share/java/gson.jar >> /usr/share/java/openjfx/jre/lib/ext/jfxrt.jar It seems the CLASS_PATH in debian/rules is not used during build, we need to patch "build.classpath" in antbuild/build.xml, like this (last patch): --- a/antbuild/build.xml +++ b/antbuild/build.xml @@ -21,7 +21,10 @@ <path id="build.classpath"> <fileset dir="/usr/share/java/" includes="jloda.jar"/> - + <fileset dir="/usr/share/java/" includes="colt.jar"/> + <fileset dir="/usr/share/java/" includes="commons-math3.jar"/> + <fileset dir="/usr/share/java/" includes="gson.jar"/> + <fileset dir="/usr/share/java/openjfx/jre/lib/ext" includes="jfxrt.jar"/> </path> <!-- init --> (or, as an alternative, succeed in making build.xml use CLASS_PATH) Note that you need to include all these libraries in debian/manifest too, otherwise the program will fail during runtime (which might not be noticed until a particular functionality is used). > I've just pushed > As I said this is in experimental. I also noticed that there is not > only trouble with javafx: > > ... > [javac] > /build/megan-ce-0.0+20170515/antbuild/src/megan/biom/BiomData.java:21: error: > package com.google.gson does not exist > [javac] import com.google.gson.Gson; > [javac] ^ > [javac] > /build/megan-ce-0.0+20170515/antbuild/src/megan/blastclient/BlastProgram.java:22: > error: package javafx.application does not exist > [javac] import javafx.application.Application; > [javac] ^ > [javac] > /build/megan-ce-0.0+20170515/antbuild/src/megan/blastclient/BlastProgram.java:23: > error: package javafx.beans.value does not exist > [javac] import javafx.beans.value.ChangeListener; > ... > > So Gson is also not found. :-( gson and javax are found, now that we change the correct classpath, but several other libraries are used: build1.log:53: [javac] import malt.align.SimpleAligner4DNA; build1.log:56: [javac] import malt.util.MurmurHash3; --> there is only 'smalt' in Debian? build1.log:59: [javac] import Jama.EigenvalueDecomposition; build1.log:62: [javac] import Jama.Matrix; build1.log:70: [javac] import Jama.EigenvalueDecomposition; build1.log:73: [javac] import Jama.Matrix; build1.log:76: [javac] import Jama.Matrix; --> libjama-java / /usr/share/java/jama.jar build1.log:94: [javac] import com.install4j.api.launcher.ApplicationLauncher; build1.log:97: [javac] import com.install4j.api.update.ApplicationDisplayMode; build1.log:100: [javac] import com.install4j.api.update.UpdateChecker; build1.log:103: [javac] import com.install4j.api.update.UpdateDescriptor; build1.log:106: [javac] import com.install4j.api.update.UpdateDescriptorEntry; --> probably not in Debian? build1.log:109: [javac] import org.controlsfx.control.Notifications; build1.log:112: [javac] import org.controlsfx.control.spreadsheet.SpreadsheetColumn; build1.log:115: [javac] import org.controlsfx.control.spreadsheet.SpreadsheetView; build1.log:144: [javac] import org.controlsfx.control.spreadsheet.GridBase; build1.log:147: [javac] import org.controlsfx.control.spreadsheet.SpreadsheetCell; build1.log:150: [javac] import org.controlsfx.control.spreadsheet.SpreadsheetCellType; build1.log:168: [javac] import org.controlsfx.control.spreadsheet.*; build1.log:181: [javac] import org.controlsfx.control.spreadsheet.SpreadsheetColumn; build1.log:184: [javac] import org.controlsfx.control.spreadsheet.SpreadsheetColumn; --> ? build1.log:138: [javac] import contrasts.Contrasts; --> ? build1.log:141: [javac] import org.apache.commons.codec.binary.Base64; --> libcommons-codec-java / /usr/share/java/commons-codec.jar build1.log:190: [javac] import org.springframework.http.HttpEntity; build1.log:193: [javac] import org.springframework.http.HttpHeaders; build1.log:196: [javac] import org.springframework.http.HttpMethod; build1.log:199: [javac] import org.springframework.http.ResponseEntity; build1.log:202: [javac] import org.springframework.web.client.RestTemplate; libspring-web-java / /usr/share/java/spring3-web.jar Cheers and Best Regards, -- Felix Natter