On 27.04.2015 13:30, Andreas Tille wrote: > Hi Markus, > > On Mon, Apr 27, 2015 at 12:59:03PM +0200, Markus Koschany wrote: >> >> I think that's because the manifest file of mauve still references the >> embedded upstream jar in the ext directory. Since you use javahelper, >> you can create a mauve.manifest or mauve.classpath file and override >> this behaviour by pointing to /usr/share/java/zeus-jscl.jar. That should >> do the trick. You can also use your preferred text editor and open >> /usr/share/java/Mauve.jar and modify the MANIFEST file by hand to test >> if it works. > > Hmmm, I admit I forgot to activate the patch I did for other Debian > packaged JARs in upstream .classpath file. I did so now in Git but this > does not change the situation. The strange thing is that if I look into > the MANIFEST file as you advised only the ext/* JARs are mentioned there > but the Debian packaged are missing. What is the difference between > using a patched .classpath from upstream and a mauve.manifest or > mauve.classpath file. What is the recommended way for creating Java > packages. Can I leave upstream .classpath untouched if I provide > debian/mauve.classpath?
In the end you have to replace all embedded jar files. At the moment Ant constructs the classpath based on the information in your build.xml file. Mauve will successfully find zeus-jscl.jar if you append /usr/share/java/zeus-jscl.jar to the classpath line in mauve's MANIFEST file by hand. I remember that I did that too and I could start the application. Javahelper provides two helpers jh_classpath and jh_manifest. The first one is probably easier to use if you only want to modify the classpath. You can find more information in /usr/share/doc/javahelper/tutorial.txt.gz Both helpers are useful because by using them you can avoid patching upstream's MANIFEST file. I suggest that you take a look at my package mediathekview which is very similar to yours because both use javahelper and Ant. https://anonscm.debian.org/cgit/collab-maint/mediathekview.git I use jh_manifest (the mediathekview.manifest file) and a wrapper script to start the application. You can either use jarwrapper or java-wrapper for this purpose. In this case I use the latter. The wrapper itself is very concise. https://anonscm.debian.org/cgit/collab-maint/mediathekview.git/tree/debian/bin/mediathekview mediathekview.manifest looks like that usr/share/mediathekview/MediathekView.jar: Class-Path: /usr/share/java/commons-lang3.jar /usr/share/java/commons-compress.jar /usr/share/java/swingx.jar /usr/share/java/forms.jar /usr/share/java/mac_widgets.jar /usr/share/java/jide-oss.jar /usr/share/java/xz.jar /usr/share/java/jackson-core.jar /usr/share/java/TimingFramework.jar /usr/share/java/jchart2d.jar Main-Class: mediathek.Main You just jave to change the path to /usr/share/java/Mauve.jar, then put all libraries on the Class-Path line and provide the Main-Class. (The information can be found in upstream's MANIFEST file. That's it. >> Please note that my patch was incomplete. Although it makes the package >> compile, there are some pieces missing. If the console doesn't work it's >> because of that. > > I'll most probably come back to ask for further hints once I've at least > git the zeus-jscl.jar found. :-) > Ok. Good luck. :) Markus
signature.asc
Description: OpenPGP digital signature