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

Latest version of the Debian/JAVA FAQ

Javier Fdz-Sanguino Pen~a writes:
 > 	I'm attaching the latest revision I've had time to make to the
 > Debian/JAVA faq.. I appreciate new contributions, of course,

It might be worth to add some explicit comments on the SCSL,
and why free software has a problem with Java2. Here's a rough
draft. Paul Fisher, Tim Wilkinson and others might have better
comments to share.


  x. Java Licensing

  x.x. What is the SCSL?

  The SCSL is the "Sun Community Software License" that can
  be found <here>. It is not compatible with Open Source for
  several reasons, and agreeing to this license (e.g. by
  downloading source covered by the SCSL) will make it
  impossible for you to contribute to free software 
  clean-room implementations. According to Sun, this includes
  using documentation and API specifications available only
  under SCSL.

  To quote one open source developer, the SCSL is "about as 
  free as the former Soviet Union". 

  x.x. Why is (some) free software not implementing Java2?

  Sun has made public statements in connection with their legal 
  strategy in the Sun-Microsoft lawsuit that indicate that the 
  company considers the published specifications of Java2 to be 
  intellectual property that can not legally be used by persons 
  involved in efforts to create Java2 clean-room implementations.
  For this reason, some open source projects have decided to not
  implement Java2 any time soon. One example is Kaffe. Some
  projects (like the Japhar/Classpath project) have decided to
  challenge Sun's legal position and are going ahead with Java2.

Here's alos a pet peeve of mine:

  x.x. GPL or LGPL?

  Java uses dynamic linking at runtime. Using the reflection
  API and class loading, the linking can be completely data
  driven, specifying classes and methods by name. This moves
  the legal issues of using GPL'ed Java code into the user's
  hands, as a violation of the GPL can not be proven from the
  executable itself. Unlike plugins, Java classes do not even
  have to have a specific structure to be used in such ways.
  By using native methods and selecting DLL's at runtime, 
  this problem might also affect native code.

  Example: a GPL'ed Java dependency checker using the 
  reflection API. Java's runtime linkage, in particular the
  reflection API, blurrs the lines between code and data
  even more than e.g. native plugins.

  If you want to write Java code that can be used without
  the user having to worry about licensing issues, consider 
  using the Lesser GPL (LPGL). If you want to avoid seeing 
  your classes and packages being used by non-free software, 
  put them under the GPL.

Reply to: