[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Help with Java package needed



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


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: