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

Re: Building java packages



Egon Willighagen wrote:

> W: jmol: executable-not-elf-or-script ./usr/share/java/vecmath1.1-1.12.jar
> W: jmol: executable-not-elf-or-script ./usr/share/java/junit.jar
> W: jmol: executable-not-elf-or-script ./usr/share/java/aelfred.jar
> W: jmol: executable-not-elf-or-script ./usr/share/java/jmol.jar
> W: jmol: executable-not-elf-or-script ./usr/share/java/Acme.jar
> W: jmol: executable-not-elf-or-script ./usr/share/java/cml.jar
> W: jmol: executable-not-elf-or-script ./usr/share/java/multi.jar

I don't think all those JARs should be in one Debian package. Most of
them are also useful for other applications so they should be in their
own Debian package. And if they are not useful for anything else, the
classes should be in jmol.jar, so this means that the jmol Debian
package should only contain a single jar file in /usr/share/java.
This avoids package conflicts if other applications use some of these
classes.

If all these JARs are in the upstream source and you just copy them
to /usr/share/java in debian/rules, your package has to go into
non-free if the sources to these JAR files are not included in the
upstream source archive.

For setting up the class path in /usr/bin/jmol, I suggest the
following scheme (as done by Ant and Tomcat): Put symlinks to all
required JARs in /usr/share/jmol/lib/ (and of couse a dependency on
their Debian packages to your control file) and use this code fragment:

--- /usr/bin/jmol ---

# Add all JAR files in /usr/share/jmol/lib/ to CLASSPATH
LOCALCLASSPATH=`echo /usr/share/jmol/lib/*.jar | tr ' ' ':'`

if [ "$CLASSPATH" != "" ] ; then
  CLASSPATH=$CLASSPATH:$LOCALCLASSPATH
else
  CLASSPATH=$LOCALCLASSPATH
fi
export CLASSPATH

/usr/bin/java package.of.main.class $@

--- / usr/bin/jmol ---

Sorry that I did not answer your original question. :)

-- 
Stefan Gybas



Reply to: