IcedTea
From Wikipedia, the free encyclopedia
|
Screenshot
|
|
| Developer(s) | Red Hat / GNU Classpath |
|---|---|
| Stable release | 1.7 / January 27, 2010 |
| Written in | C and Java |
| Operating system | Cross-platform |
| Type | Java Virtual Machine and Java Library |
| License | GPL+linking exception |
| Website | http://icedtea.classpath.org |
|
Screenshot
|
|
| Developer(s) | Red Hat / GNU Classpath |
|---|---|
| Stable release | 1.12 (OpenJDK7 Milestone 5) / November 17, 2009 |
| Written in | C and Java |
| Operating system | Cross-platform |
| Type | Java Virtual Machine and Java Library |
| License | GPL+linking exception |
| Website | http://icedtea.classpath.org |
IcedTea is a software development and integration project launched by Red Hat in June 2007.[1] The initial goal was to make the OpenJDK software which Sun Microsystems released as free software in 2007 usable without requiring any other software that is not free software and hence make it possible to add OpenJDK to Fedora and other Linux distributions that insist on free software. This was met and a version of IcedTea based on OpenJDK was packaged with Fedora 8 in November 2007.
April 2008 saw the first release[2] of a new variant, IcedTea6 which is based on Sun's build drops of OpenJDK6, a fork of the OpenJDK with the goal of being compatible with the existing JDK6. This was released in Ubuntu and Fedora in May 2008. The IcedTea package in these distributions has been renamed to OpenJDK using the OpenJDK trademark notice. In June 2008, the Fedora build passed Sun's rigorous TCK testing[3] on x86 and x86-64.
The IcedTea project also provides an easier to use build system and a home for various new features that are not yet ready to be integrated into the main OpenJDK tree, either because of immaturity or because of the need for OpenJDK contributors to sign the Sun Contributor Agreement.
Contents |
[edit] History
This project was created following Sun’s release of its HotSpot Virtual Machine and Java compiler in November 2006, and most of the source code of the class library in May 2007. However, parts of the class library, such as font rendering, colour management and sound support, were only provided as proprietary binary plugins. This was because the source code for these plugins was copyrighted to 3rd parties, rather than Sun Microsystems.[4][5] The released parts were published under the terms of the GNU General Public License, a free software licence.
Because of these missing components, it was not possible to build OpenJDK only with Free software components. Sun aimed to negotiate with the license holders to allow this code to be released under a Free license, or failing that, to replace these proprietary elements with alternative implementations. With the plugins replaced, the class library would then be completely Free. Sun has continued to use the proprietary code in their certified binary releases.[6]
Following the announcement, the IcedTea project was started and was formally announced on June 07, 2007,[7] with a build repository provided by the GNU Classpath team. The team could not call their software product "OpenJDK" because this is a trademark owned by Sun Microsystems. They instead decided to use the temporary name "IcedTea".[8]
On November 05, 2007, Red Hat signed both the Sun Contributor Agreement and the OpenJDK Community TCK License. The press release suggested that this would benefit the IcedTea project.[9] Simon Phipps suggested the possibility of IcedTea being hosted on openjdk.java.net,[10] and Mark Reinhold noted that signing the copyright assignment could allow Red Hat to contribute parts of IcedTea to Sun for inclusion in the mainstream JDK.[11][12]
Since then, a number of patches from IcedTea6 have made their way into OpenJDK6[13][14].
On June 2008, it was announced that IcedTea6 (as the packaged version of OpenJDK on Fedora 9) has passed the Technology Compatibility Kit tests and can claim to be a fully compatible Java 6 implementation.[15] The project continues to track both OpenJDK6 and OpenJDK7 development in separate repositories, and contribute patches back upstream [16] where possible; the current state of each IcedTea patch is maintained on the IcedTea wiki.
[edit] The aims
Specifically, the IcedTea project started with two aims. One was to make it possible for the GNU Compiler for Java to compile the OpenJDK code. The problem was that the only program which could compile the OpenJDK software was the existing proprietary Sun JDK. Free distributions like Fedora can't depend on proprietary tools in order to build packages, so the IcedTea project had to make it possible to compile the code using Free software. When this was done, the resulting IcedTea version of OpenJDK could be used to compile itself, thus escaping the need to use non-Free software for future compiling.[7][17]
The second task was to provide Free equivalents of the binary plugins that existed in OpenJDK because Sun was unable to release all the source code. As of March 2008, this is no longer necessary for IcedTea6, as the OpenJDK6 build drops can be built with no binary plugins. With the release of b10 [18], which replaces the proprietary sound support with that from the Gervill project, a full implementation of Java 1.6 can be built without binary plugins. The only remaining binary plug is for SNMP support, which is an optional provider for the JMX architecture and not part of the specification. As of b53 in April 2009 [19], the same is true for OpenJDK7.
[edit] Other benefits
IcedTea provides the only working, Free Software, Java Web browser plugin. It was the first to work in 64-bit browsers under 64-bit Linux, a feature Sun's proprietary JRE later addressed.[20] This makes it suitable to enable support for Java applets in 64-bit Firefox, among others. IcedTea also provides the only Free Java Web Start implementation by means of continued development of Netx.[21] Sun have made continued promises about releasing their plugin and Web Start implementation as part of OpenJDK, but have so far failed to deliver[22], despite continued pressure from the community [23]. Development on the IcedTea plugin continues rapidly, with the latest version of the next-generation plugin supporting Google's Chromium.[24]
IcedTea also provides a more familiar build system, by providing a wrapper around the OpenJDK makefiles using the GNU autotools. This removes the need to remember a large number of environment variables for configuring the build. (The current IcedTea builds set roughly forty such variables for the underlying OpenJDK build.) It has also provided a place for early work on features which will eventually appear in the main OpenJDK builds such as Gervill[25] and for work on ports to other platforms.
[edit] Progress and availability
|
|
Lists of miscellaneous information should be avoided. Please relocate any relevant information into appropriate sections or articles. (December 2009) |
As of June 2007, IcedTea is building itself and working on Fedora, and a significant portion of Mauve, the GNU Classpath test suite, runs successfully on it.[26] In May 2008, support was added to IcedTea for running the Sun JTreg regression tests.[27]
IcedTea is the default JVM in Ark Linux.[28]
IcedTea is the suggested JVM in Arch Linux.[29]
IcedTea is available in Ubuntu 7.10 (Gutsy Gibbon), from the "universe" repository,[30] and IcedTea6 in 8.04 (Hardy Heron).[31]
IcedTea is available in Fedora (operating system) 8 and IcedTea6 in Fedora 9, 10 and 11 (as java-1.6.0-openjdk), from the "yum" repository.
A binary package for IcedTea6 is available in Gentoo's official repository, but was marked unstable until recently. Continued development on source ebuilds for Gentoo for both IcedTea6 and IcedTea7 occurs in the java overlay.
It can be built and run under Debian.[32] Binary packages were submitted on 20 April 2008 but were rejected due to licensing problems with some files.[33][34] A new package was uploaded in June 2008[35] and entered unstable on 12 July 2008.
[edit] Architecture
OpenJDK contained approximately (on release in May 2007) 4 % encumbered code,[8] which was only packaged as binary plugins. These were required to build and use the JDK. OpenJDK6 was released with only 1 % encumbered code, and this sound support has also since been replaced. IcedTea6 is based on this release. IcedTea6 still provides its own web browser plugin and Web Start support, as Sun's implementation remains proprietary.
IcedTea can compile OpenJDK using GNU Classpath-based solutions such as GCJ and optionally bootstraps itself using the HotSpot Java Virtual Machine and the javac Java compiler it just built.[36]
[edit] Zero and Shark
Ports of HotSpot (OpenJDK's Virtual Machine) are difficult because the code contains a lot of assembly in addition to the C++ core.[37] The IcedTea project has developed a generic port of the HotSpot interpreter called zero-assembler Hotspot (or zero)[38], with almost no assembly code.[39][40] This port is intended to allow the interpreter part of HotSpot to be very easily adapted to any Linux processor architecture, potentially making it infinitely portable.[41] The code of zero-assembler Hotspot is used for all the non-x86 ports of HotSpot (PPC, IA64, S390 and ARM) since version 1.6 of IcedTea7.[42][43][44]
The IcedTea project is now developing a platform-independent just-in-time compiler called Shark for HotSpot, using Low Level Virtual Machine, to complement Zero.[45][46] Completing this work will make the Java Virtual Machine independent of the CPU architecture.
[edit] See also
[edit] External links
- IcedTea main page
- IcedTea Status
- IcedTea announcement
- Classpath mailing list announcement
- Thomas Fitzsimmons (Red Hat developer) blog entry announcing IcedTea
- Guide to porting IcedTea
- OpenJDK and IcedTea, A view from the Fedora side
[edit] References
- ^ Fitzsimmons, Thomas (2007-06-08). "Credits". http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2007-June/000032.html. Retrieved 2007-06-08.
- ^ Angel, Lillian (2008-04-04). "IcedTea6 1.1 Released". http://langel.wordpress.com/2008/04/04/icedtea6-11-released/. Retrieved 2008-07-12.
- ^ Sharples, Rich (2008-06-19). "Java is finally Free and Open". http://blog.softwhere.org/archives/196. Retrieved 2008-06-19.
- ^ "Open JDK is here!". Sun Microsystems. 2007-05-08. http://mail.openjdk.java.net/pipermail/announce/2007-May.txt. Retrieved 2007-05-09.
- ^ See also Java Class Library Licensing
- ^ "Sun's OpenJDK FAQ". http://www.sun.com/software/opensource/java/faq.jsp#b. "Now Sun is open sourcing most of the remaining components of the JDK, with the exception of a few encumbered components that we hope, with the community's help, can be re-implemented so that 100 % of the OpenJDK code commons is available as free software...Sun will continue to use that code in commercial releases until it's replaced by fully-functional open-source alternatives"
- ^ a b Haley, Andrew (2007-06-07). "Experimental Build Repository at icedtea.classpath.org". http://article.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/5. Retrieved 2007-06-09.
- ^ a b Fitzsimmons, Thomas (2007-05-18). "Plans for OpenJDK". http://fitzsim.org/blog/?p=17. Retrieved 2007-05-22.
- ^ "Red Hat and Sun Collaborate to Advance Open Source Java Technology". Red Hat. 2007-11-05. http://home.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&newsId=20071105005882&newsLang=en. Retrieved 2007-11-06.
- ^ Phipps, Simon (November 5, 2007). "Red Hat Joins OpenJDK". http://blogs.sun.com/webmink/entry/red_hat_joins_openjdk. Retrieved 2007-11-14.
- ^ Reinhold, Mark (2007-11-05). "Welcome, Red Hat!". http://blogs.sun.com/mr/entry/rht_java. Retrieved 2007-11-14.
- ^ Andrew, Haley (May 16, 2008). "Open source project: OpenJDK". http://www.redhatmagazine.com/2008/05/16/open-source-project-openjdk/.
- ^ "Bug ID 6523403: OSS CMM: Need to provide lcms library with PYCC and LINEAR_RGB OS ICC profiles". http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6523403. Retrieved 2008-07-12.
- ^ "Bug ID 6604044 java crashes talking to second X screen". http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6604044. Retrieved 2008-07-12.
- ^ Sharples, Rich (2008-06-19). "Java is finally Free and Open". http://blog.softwhere.org/archives/196.
- ^ Haley, Andrew (2009-04-01). "New project: getting rid of IcedTea local patches". http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2009-April/005296.html. Retrieved 2009-09-05.
- ^ Wielaard, Mark (2007-06-07). "Experimental Build Repository at icedtea.classpath.org". http://developer.classpath.org/pipermail/classpath/2007-June/002109.html. Retrieved 2007-06-09.
- ^ Wielaard, Mark (2007-05-30). "OpenJDK6 b10 source posted". http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-June/000060.html. Retrieved 2008-07-12.
- ^ "Changes in OpenJDK7 b53". 2009-04-02. http://download.java.net/jdk7/changes/jdk7-b53.html. Retrieved 2009-09-05.
- ^ http://java.sun.com/javase/6/webnotes/6u12.html
- ^ Netx is a high-quality implementation of the Java Network Launching Protocol (JNLP).
- ^ Darcy, Joe (2009-06-08). "OpenJDK and the new plugin". http://mail.openjdk.java.net/pipermail/jdk6-dev/2009-June/000604.html. Retrieved 2009-09-05.
- ^ Hughes, Andrew John (2009-08-21). "Opensource plugin&webstart - when?". http://mail.openjdk.java.net/pipermail/discuss/2009-August/001372.html. Retrieved 2009-09-05.
- ^ Bhole, Deepak (2009-08-26). "IcedTea Java plugin with Chromium and Firefox 3.6A1". http://dbhole.wordpress.com/2009/08/26/icedtea-java-plugin-with-chromium-and-firefox-3-6a1/. Retrieved 2009-09-05.
- ^ a generic synthesizer for Java
- ^ Kung, Francis (2007-06-12). "Mauve test run results". http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2007-June/000046.html. Retrieved 2007-06-12.
- ^ Wielaard, Mark. "jtreg testing integrated". http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2008-May/001921.html. Retrieved 2008-07-12.
- ^ "Ark Linux packages". Ark Linux. http://arklinux.osuosl.org/dockyard-devel/SRPMS. Retrieved 2008-02-23.
- ^ "JRE and JDK Moved to Community". Arch Linux. http://www.archlinux.org/news/418/. Retrieved 2009-07-30.
- ^ "Ubuntu -- Details of icedtea-java7-jre in gutsy". Ubuntu Packages. http://packages.ubuntu.com/gutsy/interpreters/icedtea-java7-jre. Retrieved 2007-10-26.
- ^ "Ubuntu -- Details of package openjdk-6-jre in hardy". Ubuntu Packages. http://packages.ubuntu.com/hardy/interpreters/openjdk-6-jre. Retrieved 2008-07-12.
- ^ "Debian Building Instructions". IcedTea Wiki. http://icedtea.classpath.org/wiki/DebianBuildingInstructions. Retrieved 2008-05-21.
- ^ "openjdk-6 - Debian NEW package overview". Debian ftp-master. http://ftp-master.debian.org/new/openjdk-6_6b09-1.html. Retrieved 2008-05-21.
- ^ "jdk6 - GPL-compatible free software licenses and documented copyrights and licenses". http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=138. Retrieved 2008-07-12.
- ^ "openjdk-6 - Debian NEW package overview". Debian ftp-master. http://ftp-master.debian.org/new/openjdk-6_6b10dfsg-1.html. Retrieved 2008-07-12.
- ^ Wielaard, Mark (2007-06-07). "IcedTea". http://gnu.wildebeest.org/diary/2007/06/07/icedtea/. Retrieved 2007-06-09.
- ^ Benson, Gary (2007-11-06). "Gary's guide to porting IcedTea". http://gbenson.livejournal.com/2007/11/16/. Retrieved 2008-01-26.
- ^ "Zero-Assembler Project". http://openjdk.java.net/projects/zero/. Retrieved 2008-08-22.
- ^ "ZeroSharkFaq". icedtea.classpath.org. http://icedtea.classpath.org/wiki/ZeroSharkFaq. Retrieved 2009-05-30.
- ^ Benson, Gary (2008-05-28). "28 May 2008". Red Hat. http://gbenson.net/?p=80. Retrieved 2008-05-30. "Shark is a platform-independent JIT for HotSpot, to complement the zero-assembler interpreter we’ve been using"
- ^ Benson, Gary (2009-05-21). "Zero and Shark: a Zero-Assembly Port of OpenJDK". java.net. http://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html. Retrieved 2009-05-30. "We started an experimental port of OpenJDK without assembly language, using free software libraries to bridge the gaps. This experiment evolved to become the zero-assembly port of OpenJDK -- Zero -- and its just-in-time compiler Shark."
- ^ Benson, Gary (2008-02-01). "1st February 2008". http://gbenson.livejournal.com/2008/02/01/. Retrieved 2008-02-03.
- ^ Haley, Andrew (2008-01-31). "Making zero-assembler the default on ppc". http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2008-January/001085.html. Retrieved 2008-02-03.
- ^ Angel, Lillian (2008-02-13). "IcedTea 1.6 Released with Zero-assembler and JNLP support!". Red Hat. http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2008-February/001172.html. Retrieved 2008-02-13.
- ^ Benson, Gary (2008-03-31). "31 March 2008". Red Hat. http://gbenson.net/?p=67. Retrieved 2008-05-30.
- ^ Benson, Gary (2008-05-28). "28 May 2008". Red Hat. http://gbenson.net/?p=80. Retrieved 2008-05-30. "Shark is a platform-independent JIT for HotSpot, to complement the zero-assembler interpreter we’ve been using"
|
||||||||||||||
