Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Java Programming Software

Sun Completes Java Core Tech Open-Sourcing 141

MsManhattan writes "A year after announcing its plans, Sun Microsystems has made almost all of the core technology in Java available as open-source software under the GNU general public license version 2 (GPLv2). However, some of the code remains 'encumbered'; that is, Sun doesn't have sufficient rights to release it under GPLv2, and the company is requesting the open-source community's help in resolving these issues. Rich Sands, community marketing manager for OpenJDK community at Sun, would not say what percentage of Java's 6.5 million lines of code are encumbered, but explained that it is largely Java 2D graphics technology, such as font and graphics rasterizing."
This discussion has been archived. No new comments can be posted.

Sun Completes Java Core Tech Open-Sourcing

Comments Filter:
  • Rich Sands, community marketing manager for OpenJDK community at Sun, would not say what percentage of Java's 6.5 million lines of code are encumbered, but explained that it is largely Java 2D graphics technology, such as font and graphics rasterizing.

    In case anyone is wondering, this isn't much of a surprise to the Java community. When Sun was creating the latest and greatest Java libraries, they designed the APIs themselves to be generic. However, Sun generally licensed the underlying libraries for their reference implementation rather than developing them in-house. In the case of the Java2D APIs, they used code from Kodak to do all the fancy 2D rasterizations and transformations. This is why many Java coders thought that Sun's reference implementation would never be Open Sourced. (Happy to be wrong, BTW.)

    That code by itself could probably be replaced with a modern 2D rasterizer (similar to the types found in SVG and Canvas implementations), but it would need to be heavily overhauled to backport the VolatileImage support added in Java 1.4. (Basically, the JVM is able to manage the video card memory to store images for faster rendering and backbuffering.) I'm thinking that something OpenGL-based would be the best bet.

    However, that's not the only major library used. JavaSound also uses Dolby Headspace to render sound. It barely uses a fraction of the library's capabilities, but it would still need to be replaced. I don't know what was used for cryptography, but that would be replacable with a library like Bouncy Castle [bouncycastle.org].

    All in all, the final code shouldn't be too hard to replace as long as Open Source equivalents can be found. However, these areas *do* require significant expertise, so don't expect that joe random can jump in the code and make it happen.
  • by gedhrel ( 241953 ) on Tuesday May 08, 2007 @12:22PM (#19038247)
    No, it doesn't. There was quite a deal of work that went into making sure that that was ok.
  • From the GPLv2, last published June 1991:

    If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.


    In addition:

    However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.


    The second part is tenuous given the wording, but could be made to apply given Java's attempt to be the execution platform. However, the former part carries far more weight. Programming to the Java specification does not imply that you are basing it on a GPLed version.
  • by slack_prad ( 942084 ) on Tuesday May 08, 2007 @12:30PM (#19038371) Journal
    GCC is GPL, but my gcc compiled malware program is commercial software.
  • by mhall119 ( 1035984 ) on Tuesday May 08, 2007 @12:35PM (#19038427) Homepage Journal
    I'm giving up mod points on this article, but given the amount of misinformation you're getting, its better that I post a reply.

    Sun isn't using GPLv2, they are using GPLv2 + the Classpath exception. This is a modification to the GPLv2 pioneered by the GNU Classpath project. It basically makes Java's code GPL, but doesn't require code running on the JVM, or using the J2SE libraries, to be GPLv2 complaint.

    Links here:
    http://www.sun.com/software/opensource/java/faq.js p#g5 [sun.com]
    http://www.javalobby.org/java/forums/t84256.html [javalobby.org]
    http://en.wikipedia.org/wiki/GPL_linking_exception [wikipedia.org]
  • * Where is the effort being organised

    https://openjdk.dev.java.net/ [java.net]

    * Is there a list of the methods that need to be reimplemented?

    I imagine that the Graphics2D class as well as the VolatileImage class need to be implemented. The BufferedImage implementation may need to be modified to obtain the "Automatic Image" behavior seen in the Sun JVM. Depending on how much Sun has withheld, you may need to implement the GraphicsEnvironment code as well. I recommend asking on the mailing list for specifics.

    * Have I been tainted -- I've seen java code before, If I reimplement something and it might look like the previous code, how do I guard against this?

    The "tainting" problem was always an OSS community invention based on Sun's license wording. As long as the code you've seen is in the OpenJDK, it's quite impossible for you to be "tainted" as Sun has given it to you under the terms of the GPL. Of course, you should always consult a lawyer for the latest in paranoid-protective behavior, but I sincerely doubt that Sun would try and sue you over something they just gave you.

    * Can we make java better?

    You can do whatever the GPL license allows you to do. However, I imagine that OpenJDK won't accept anything more than implementation enhancements. New APIs need to go through the JCP for standardization before they can be accepted into a mainline JDK distribution. Again, ask on the mailing list for more details.
  • Update: Check here instead - http://openjdk.java.net/ [java.net]
  • Actually, that's the wrong page. For some crazy reason that's incomprehensible to the average human being, Sun moved the code to a different page. See here:

    http://openjdk.java.net/ [java.net]

    You'll note that those downloads include all the core libraries that Sun promised to release. Why don't they redirect users looking at http://openjdk.dev.java.net/ [java.net] to that page? I have no idea, but there you go.
  • *cough* http://openjdk.java.net/ [java.net] *cough*

    The http://openjdk.dev.java.net [java.net] site is defunct.

    The important bits are all there, sans part of the Java2D and JavaSound implementation libs.

  • by mhall119 ( 1035984 ) on Tuesday May 08, 2007 @02:33PM (#19040273) Homepage Journal
    The term "linking" has actually caused a lot of confusion due to the difference between how Java links to libraries as opposed to C/C++. For C/C++, linking is much closer to a derivative work than in Java since (to my knowledge, I'm not a C programmer) when you "link" to a C/C++ library, you actually need the source code (or at least header files) from that library in order to compile your code, therefore including elements of that library's source in your final binary. In Java, you can "link" your code to a library's binary without including anything from it's source.
  • Re:One word! (Score:3, Informative)

    by howlingmadhowie ( 943150 ) on Tuesday May 08, 2007 @02:39PM (#19040365)
    there's been a rumour for quite a while now that sun will move solaris10 from the CDDL to GPL3 as soon as GPL3 is finished. (one should also mention that duke nukem forever will also be released under the GPL3 according to a similar rumour)
  • by sveinungkv ( 793083 ) on Tuesday May 08, 2007 @04:55PM (#19042923)
    Not to mention JavaFX [java.net]. It is even to convert Flash files to it. [zdnet.com]
  • Re:Gnu classpath ? (Score:3, Informative)

    by rabbit78 ( 822735 ) on Tuesday May 08, 2007 @05:04PM (#19043083) Homepage
    Speaking as one of the GNU Classpath developers, I agree with that idea. However, there are some issues to be worked out, like the ownership of the code. GNU Classpath's code is copyrighted by the FSF and Sun's code is copyrighted by Sun. Both organizations require that contributors sign a copyright agreement before accepting code. I don't know about details, but I guess Sun and the FSF would have to arrange something before such a thing could happen. Luckily, Dalibor Topic, also a Classpath developer, is in the interim board, and I hope that this would help to arrange for the two projects to merge in some way. OTOH, I and my friends at Classpath will look into the encumbered areas and see how we can help out with the missing pieces.
  • by Anonymous Coward on Wednesday May 09, 2007 @01:09AM (#19048275)

    Java is linked at runtime. According to the FSF, linking to a subclass at runtime counts as a derived work.
    They can say that all they like, but it's provably false.

    How can you create a derivative work of a piece of GPLed source if you've never seen that source?
    The same with the binary.

    If I develop a J2SE application now, on Sun's current non GPL Java, and then later run it with a GPLd version, I have no more created a derivative work of the GPLed version than my music collection sitting on the shelf constitutes a derivative work of all the CDs in it.
    use is not derivation, and is not copyright infringement, so no license is required, so the GPL does not apply, no matter what the FAQ says.
    The GPL is a distribution license, not an EUL.
  • by myawn ( 562028 ) <mike&theYawns,com> on Wednesday May 09, 2007 @01:37AM (#19048411) Homepage
    I'm sitting in a JavaOne BOF right now where reification of generics (the fancy way of saying not throwing away type information) is being mentioned as a possible JDK 7 feature.

    There are some real compatibility issues in doing this (I remember Gilad Bracha covering this at a previous JavaOne), but it sounds like they are at least willing to take a look at it again.

  • by lpontiac ( 173839 ) on Wednesday May 09, 2007 @03:32AM (#19048919)
    The OO concept of "derivation" is not the same as the legal concept of a derived work, even though they use the same English word.

    Furthermore, the GPL covers distribution, not use.

"The four building blocks of the universe are fire, water, gravel and vinyl." -- Dave Barry

Working...