GNU/Linux Java Policy and Packaging

2007-06-13 Thread Tom Marble
All:

I'm very much looking forward to working Java Policy and
Packaging issues at Debconf7.

There has been some great discussion about this recently
from Paul, Manfred, Matthew and others.  And, of course,
there is a lot of documentation out there [1].

My proposal is that, if folks agree, that we now actively
list the issues that need to be addressed and work
towards revised (or at least new documentation for) Java Policy.
These start at the very practical level and move to more
generic -- pan-Linux Java Policy.  We had some great
discussions along these lines at the most recent
DevJam at FOSDEM 2007 [2].  The overriding goal here is
that the experience for Java developers, packagers and
users on GNU/Linux is as comfortable as possible
("It Just Works!").

I think the right way to flesh out these ideas is to
work them up on the Wiki, but to get started let
me write some here.  I realize most of this is already
decided and works just fine...  Again the purpose
is discussion:

Execution
-
1. Handling alternative runtimes
   Gracefully handle the co-existence of many different
   runtimes (even multiple versions of one runtime).

2. Insure that the man pages correspond to the
   executables (e.g. 'man java' does the right thing
   for the current /usr/bin/java alternative).

3. Gracefully handle all the features of a runtime
   (e.g. the union of all possible programs in
   a runtime, SDK, and also Java Plug-In).
   Certain implementations may not have all the
   executables (or plugin) and may need to rely
   on some default (or error handling) behavior.

4. Support for binfmt_misc?

Administration
--
5. Use the priority system for safe "default" behavior.

6. Command line tools for making choices
   (e.g. update-java-alternatives).
   It would be really nice for there to be global
   defaults (priorities), system defaults, and then
   user settings (where feasible).

7. GUI tools for making choices
   (e.g. a GUI front end for update-java-alternatives).

8. It will be important to have some interface
   for runtime argument setting -- esp. for performance.
   The challenge here is that tunings (e.g. heap, collector,
   compiler, etc) are VM dependent.  And the packager's
   default may not be a good system wide default.
   And users should be able to override these settings
   conveniently as well (e.g. for profiling/analysis,
   for production environments)

Packaging
-
9. Debhelper tools to help packaging Java libraries and
   applications easier and less error prone (e.g. dh_installjars,
   cdbs extensions).

10. Filesystem conventions (FHS) for runtimes (e.g. /usr/lib/jvm)
and libraries (e.g. /usr/share/java).

11. Define virtual provides (free/non-free, which version
of the Java SE platform: 4, 5, 6, 7).

12. Future integration of the the packaging with
the Java Module System (JSR 277).

Upstream and distro Integration
---
13. Common upstream watcher.  As many distros are interested
in new versions from the same upstream runtimes (and
libraries and apps) it seems that there is an opportunity
for us to collaborate at a community level on
some sort of notification of upstream publication
(i.e. something as simple as Atom/RSS for new versions)

14. Common package decomposition and interdependencies.
Again as many of these applications are identical across
distros (as are the libraries) we may be able to
reduce our community "energy budget" on packaging if
we can share the dependency graph despite packaging
format differences.

15. Common upstream/downstream bug integration.
Ideally if a bug is found in one distro it gets a
tracking bug upstream... and then the upstream bug
can point to all the distro specific bugs.
Perhaps stated more generally -- wouldn't it be
great if searching on "xcb protocol" would
list Java issues on *all* distros?

Petteri Räty has pointed out some of the very interesting
approaches that Gentoo uses in it's java-config-2
structure [2] (I have more documentation that can go on the Wiki).
I'm not proposing that Debian adopt java-config-2 wholesale, but
I think the Gentoo is an excellent example for discussing
different approaches to addressing these challenges.

Regards,

--Tom

[1] some Debian Java documentation

avdyk in 2005
  http://wiki.debian.org/CommonJavaPackaging
AldousPenaranda in 2005
  http://wiki.debian.org/DebianJavaPackaging
Barry Hawkins in 2006
  http://wiki.debian.org/Java/RoadMap
Ola Lundqvist
Stephane Bortzmeyer
  http://www.debian.org/doc/packaging-manuals/java-policy/
Debian Java Packaging Project 2006
  http://pkg-java.alioth.debian.org/
Debian GNU/Linux Java FAQ. 2006
  http://www.debian.org/doc/manuals/debian-java-faq/

[2] http://blogs.sun.com/tmarble/entry/devjam_fosdem_slides

[3] Part of the Gentoo java-config-2 approach
http://rafb.net/p/QxST1h34.html

http://overlays.gentoo.org/proj/java/browser/projects/java-co

Re: Sun's OpenJDK in Debian?

2007-06-13 Thread Tom Marble
Jens Seidel wrote:
> I'm surprised that this wasn't discussed already in the past on this list
> (or in the BTS of some important java packages), but what is the status
> of Sun's Java architecture in Debian?
> 
> It is licensed under GPL2 and should be compatible with DFSG.

As previously discussed we are quite keen on getting OpenJDK into Debian.
Getting a complete and fully functional OpenJDK into Debian, Fedora
and other major Linux distributions is one of my top priorities.

The IcedTea project is an great step in this direction to help
close the remaining binary encumbrances.

Regards,

--Tom


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Backtrace with jar

2007-06-13 Thread Andrew Haley
Jörg Sommer writes:

 > is this a bug in java or in the application?

 > Caused by: java.lang.NoSuchMethodError: getenv

getenv was deprecated, removed, and then re-added in Java 1.5.  

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4199068

 > Caused by: java.lang.ClassNotFoundException: 
 > com.sun.image.codec.jpeg.ImageFormatException not found in 
 > gnu.gcj.runtime.SystemClassLoader{urls=[file:Puck.jar], 
 > parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}

com.sun.image.codec.jpeg.ImageFormatException is not part of the Java
API.

Andrew.

-- 
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 
1TE, UK
Registered in England and Wales No. 3798903


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Backtrace with jar

2007-06-13 Thread Jörg Sommer
Hi,

is this a bug in java or in the application?

% java -jar Puck.jar -ec
java.lang.reflect.InvocationTargetException
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at jamvm.java.lang.JarLauncher.main(JarLauncher.java:49)
Caused by: java.lang.NoSuchMethodError: getenv
   at logging.Log.getComputername(Log.java:209)
   at logging.Log.log(Log.java:90)
   at logging.Log.debug(Log.java:69)
   at newdnd.FragmentImage.getThisJar(FragmentImage.java:153)
   at system.GUI.(GUI.java:282)
   at system.GUI.getInst(GUI.java:124)
   at system.GUI.main(GUI.java:161)
   at java.lang.reflect.Method.invokeNative(Native Method)
   ...2 more

% java -version
java version "1.4.2"
JamVM version 1.4.4
Copyright (C) 2003-2006 Robert Lougher <[EMAIL PROTECTED]>

The file is available here:
http://www.uni-jena.de/img/unijena_/faculties/minet/casio/Puck/Puck_2.4.zip

With gij it crashes on another point:
% gij-4.1 -jar Puck.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: system.FileMenuAL
   at java.lang.Class.initializeClass(libgcj.so.71)
   at system.GUI.makeMenuWithShortcuts(GUI.java:424)
   at system.GUI.initGUI(GUI.java:350)
   at system.GUI.(GUI.java:268)
   at system.GUI.getInst(GUI.java:124)
   at system.GUI.main(GUI.java:161)
Caused by: java.lang.ClassNotFoundException: 
com.sun.image.codec.jpeg.ImageFormatException not found in 
gnu.gcj.runtime.SystemClassLoader{urls=[file:Puck.jar], 
parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.71)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.71)
   at java.lang.ClassLoader.loadClass(libgcj.so.71)
   at java.lang.ClassLoader.loadClass(libgcj.so.71)
   at java.lang.Class.forName(libgcj.so.71)
   at java.lang.Class.initializeClass(libgcj.so.71)
   ...5 more

% gij-4.1 --version
java version "1.5.0"
gij (GNU libgcj) version 4.1.3 20070518 (prerelease) (Debian 4.1.2-8)

% unzip -l Puck.jar |grep system/FileMenuAL
23882  08-30-06 14:29   system/FileMenuAL.class

It's not my project. I'm only alpha tester.

Bye, Jörg.
-- 
Es ist außerdem ein weit verbreiteter Irrtum das USENET ‚helfen‘ soll.
Tatsächlich wurde USENET nachweislich zur persönlichen Belustigung
seiner Erfinder geschaffen.
Jörg Klemenz <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#428643: ITP: maven-ant-helper -- package helper scripts for building Maven components with ant

2007-06-13 Thread Paul Cager
Package: wnpp
Severity: wishlist
Owner: Paul Cager <[EMAIL PROTECTED]>

* Package name: maven-ant-helper
  Version : 1.0
  Upstream Author : Trygve Laugstøl <[EMAIL PROTECTED]>
* URL : http://svn.debian.org/wsvn/pkg-java/trunk/maven-ant-helper
* License : Apache
  Programming Lang: Java
  Description : package helper scripts for building Maven components with 
ant

 An environment that can be used to simplify the creation of Debian
 packages to support the Maven system. A "modello" ant task is
 also provided.
 .
  Homepage: http://svn.debian.org/wsvn/pkg-java/trunk/maven-ant-helper


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]