Jump to content

IcedTea

From Wikipedia, the free encyclopedia
IcedTea for OpenJDK 8
Developer(s)GNU Classpath
Stable release
3.31.0[1] / April 20, 2024(2024-04-20)
Repositorygithub/icedtea-git/icedtea/tree/3.0
Written inC,C++andJava
Operating systemLinux,*BSD,macOS,Windows,Solaris
PlatformIA-32, x86-64, ARM, AArch64, sparc, sparc64, ppc, ppc64, ppc64le, s390, s390x
TypeJava virtual machineand JavaLibrary
LicenseGNU GPL+linking exception
Websiteicedtea.classpath.org
IcedTea for OpenJDK 7
Developer(s)GNU Classpath(withRed Hatuntil 2.6.22)
Stable release
2.6.28[2] / November 8, 2021(2021-11-08)
Repositorygithub/icedtea-git/icedtea/tree/2.6
Written inC,C++andJava
Operating systemLinux,*BSD,macOS,Windows,Solaris
PlatformIA-32, x86-64, ARM, AArch64, sparc, sparc64, ppc, ppc64, ppc64le, s390, s390x
TypeJava virtual machineand JavaLibrary
LicenseGNU GPL+linking exception
Websiteicedtea.classpath.org
IcedTea for OpenJDK 6
Developer(s)Red Hat&GNU Classpath
Final release
1.13.13 / January 9, 2017(2017-01-09)
Repositoryicedtea.classpath.org/hg/icedtea6
Written inC,C++andJava
Operating systemLinux,*BSD,macOS,Windows,Solaris
PlatformIA-32, x86-64, ARM, sparc, sparc64, ppc, ppc64, s390, s390x
TypeJava virtual machineand JavaLibrary
LicenseGPL+linking exception
Websiteicedtea.classpath.org
IcedTea-Web
Developer(s)Red Hat&GNU Classpath
Stable release
1.8.8(binaries) / October 28, 2021(2021-10-28)
Repositorygithub/AdoptOpenJDK/icedtea-web
Written inC++andJava
Operating systemLinux,*BSD,OS X,Windows,Solaris
TypeJava Web Startsupport and Javaweb pluginforapplets
LicenseGPL+linking exception
Websiteicedtea.classpath.org/wiki/IcedTea-Web
IcedTea-Sound
Developer(s)Red Hat&GNU Classpath
Stable release
1.0.1 / July 18, 2014(2014-07-18)
Repositoryicedtea.classpath.org/hg/icedtea-sound/
Written inCandJava
Operating systemLinux,*BSD,OS X,Windows,Solaris
TypeSound support
LicenseGPL+linking exception
Websiteicedtea.classpath.org/wiki/IcedTea-Sound

IcedTeais abuildandintegrationproject forOpenJDKlaunched byRed Hatin June 2007.[3]IcedTea also includes some addon libraries:IcedTea-Webis afree softwareimplementation ofJava Web Startand theJavaweb browser applet plugin.IcedTea-Soundis a collection of plugins for the Java sound subsystem, including thePulseAudioprovider which used to be included with IcedTea. TheFree Software Foundationrecommends that all Java programmers use IcedTea as their development environment.[4]

Historically, the initial goal of the IcedTea project was to make the OpenJDK software, which Sun Microsystems released as free software in 2007, usable without requiring anyproprietary software,and hence make it possible to add OpenJDK toFedoraand otherLinux distributionsthat insist on free software. This goal was met, and a version of IcedTea based on OpenJDK was packaged withFedora 8in November 2007. April 2008 saw the first release[5]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 inUbuntuand 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[6]onx86andx86-64.IcedTea 2, the first version based on OpenJDK 7, was released in October 2011.[7]IcedTea 3, the first version based on OpenJDK 8, was released in April 2016.[8]Support for IcedTea 1 was dropped in January 2017.[9]

History

[edit]

This project was created following Sun's release under open source licenses of itsHotSpotVirtual MachineandJava compilerin November 2006, and most of thesource codeof theclass libraryin 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 third parties, rather than Sun Microsystems.[10][11]The released parts were published under the terms of theGNU General Public License,afree software license.

Due to these missing components, it was not possible to build OpenJDK only withfree softwarecomponents. Sun aimed to negotiate with the license holders to allow this code to be released under a free software 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.[12]

Following the announcement, the IcedTea project was started and was formally announced on June 7, 2007,[13]with a build repository provided by theGNU Classpathteam. The team could not call their software product"OpenJDK"because this is a trademark which was owned bySun Microsystems.They instead decided to use the temporary name"IcedTea".[14]

On November 5, 2007, Red Hat signed both the Sun Contributor Agreement and the OpenJDK CommunityTechnology Compatibility Kit(TCK) License. The press release suggested that this would benefit the IcedTea project.[15]Simon Phippssuggested the possibility of IcedTea being hosted on openjdk.java.net,[16]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.[17][18]

Since then, a number of patches from IcedTea have made their way into OpenJDK.[19][20]

In June 2008, it was announced that IcedTea6 (as the packaged version of OpenJDK onFedora 9) has passed the (TCK) tests and can claim to be a fully compatible Java 6 implementation.[21]The project continues to track OpenJDK 6, OpenJDK 7 and OpenJDK 8 development in separate repositories, and contribute patches back upstream[22] where possible; the current state of each IcedTea patch is maintained on the IcedTea wiki.

Aims

[edit]

The IcedTea project started with two aims:

  1. to make it possible for theGNU Compiler for Javatocompilethe OpenJDK code. OpenJDK presented abootstrappingquestion of itself being written in Java. Hence, developers needed an already-working Java compiler and runtime in order to build OpenJDK. Originally, only the existing proprietary Sun JDK met that requirement. 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.[13][23]
  2. 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 OpenJDK 6 build drops can be built with no binary plugins. With the release of b10,[24]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 forSNMPsupport, which is an optional provider for theJMXarchitecture and not part of the specification. As of b53 in April 2009,[25]the same is true for OpenJDK 7. Outside the core of OpenJDK, binary plugins are still required for utilizing Java Web Start applets that run using the browser plugin (distinct from the core plugins discussed earlier); as of 2013, the only source code available that accomplishes this goal is the IcedTea-Web project.

Other benefits

[edit]

IcedTea also provides a more familiar build system by providing a wrapper around the OpenJDK makefiles using theGNU Autotools.This removes the need to remember numerous 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[26]and for work on ports to other platforms.

IcedTea-Web

[edit]
IcedTea NPR plugin (based on IcedTea6) listed in Debian Iceweasel 6.0.2 (Knoppix 6.7.1)

IcedTea-web provides a 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.[27]This makes it suitable to enable support forJava appletsin 64-bitMozillaFirefox,among others. IcedTea-web also provides a free Java Web Start (Java Network Launching Protocol (JNLP)) implementation. Sun had promised to release their plugin andWeb Startimplementation as part of OpenJDK.[28]Despite pressure from the community,[29]Sun Microsystems did not succeed in doing so before the company was acquired byOracle.Development on the IcedTea-web plugin continues, with the latest version of the next-generation plugin supporting Google'sChromium[30]in addition to Firefox. Since 2011, development takes place in the separate IcedTea-Web project.[31]As of April 2013, Oracle has kept the codebase of the Java plugin fully proprietary,[32]in contrast to the remainder of OpenJDK. As of December, 2017, IcedTea-Web 1.7.1 adds support for jdk9.

As of October 2018, Oracle has announced that public Java Web Start support will end withJava SE 11.[33]In March the icedtea-web source code was donated to theAdoptOpenJDKproject.[34]Based on this the sources and issue management of IcedTea-Web weremigrated to GitHub. One goal of the migration is to provide an integration for the Java 8 releases ofAdoptOpenJDK,and provide JDK vendor independent installers for IcedTea-Web. The integration project is a cooperation between the AdoptOpenJDK community,Red Hat,andKarakun AG.The project for the installers is namedOpenWebStartand first informationcan be found here.

Progress and availability

[edit]

From June 2007, IcedTea was able to build itself and pass a significant portion ofMauve,the GNU Classpath test suite.[35]In May 2008, support was added to IcedTea for running the Sunjtregregression tests.[36]

IcedTea has become popular among package maintainers for the following Linux distributions. Currently (as of April 2012):

  • IcedTea is the default JVM in Ark Linux[37]andArch Linux.[38]
  • It can be built and run underDebian.[39]Packages entered unstable on 12 July 2008. As of May 2022, packages icedtea-netx and icedtea-netx-common are available in official Debian repositories for at least Debian 9 through 12.[40]
  • IcedTea[7] was available inFedora8 and IcedTea6 appeared in Fedora 9 through to 17 as java-1.6.0-openjdk.[41]A java-1.7.0-openjdk package using the IcedTea 2.x OpenJDK forest, but not its build system, first appeared in Fedora 16.[42]
  • Binary and source packages for IcedTea 3.x are available inGentoo'sofficial repository. A source package for IcedTea 2.x continues to be maintaining in the Java overlay repository. Installing a Java application by default pulls in IcedTea instead of oracle-jdk because it can be installed without extra work from the user, as users have to manually agree to Oracle'sEULAto download the oracle-jdk.
  • IcedTea is available inUbuntu7.10 (Gutsy Gibbon), from the "universe" repository,[43]and IcedTea6 in 8.04 (Hardy Heron).[44]Starting with Ubuntu 11.04 only IcedTea is available.

Architecture

[edit]

OpenJDK contained approximately (on release in May 2007) 4% encumbered code,[14]which was only packaged as binary plugins. These were required to build and use the JDK.OpenJDK 6was released with only 1% encumbered code, and the encumbered sound support has also since been replaced. IcedTea6 is based on this release. IcedTea still provides its own web browser plugin and Web Start support, as Sun's implementation remainsproprietary.

IcedTea 1.x and 2.x can compile OpenJDK using GNU Classpath-based solutions such asGCJand optionally bootstraps itself using the HotSpotJava Virtual Machineand the javacJava compilerit just built.[45]For now, building IcedTea 3.x requires using IcedTea 2.x or 3.x, or an OpenJDK 7 or 8 build from another source.

Platform support

[edit]

Cross-architecture ports of HotSpot (OpenJDK's Virtual Machine) are difficult, because the code contains muchassembly language,in addition to theC++core.[46]The IcedTea project has developed a generic port of the HotSpotinterpretercalledzero-assembler Hotspot(orzero),[47]with almost no assembly code.[48][49]This port is intended to allow the interpreter part of HotSpot to be very easily adapted to anyLinuxprocessor architecture.[50]The code ofzero-assembler Hotspotwas used for all the non-x86ports of HotSpot (PPC,IA-64,S390andARM) from version 1.6 of IcedTea7.[51][52][53]

The IcedTea project has also developed aplatform-independentjust-in-time compilercalledSharkfor HotSpot, usingLLVM,to complementZero.[49][54]This was included in upstream OpenJDK in August 2010.[55]A JIT for ARM32 was first included in 1.6.0[56]and 2.1.1.[57]A native port toAArch64from Red Hat[58]appeared in 2.4.6[59]and a native PPC64 port from SAP/IBM[60]will be included in 2.5.0.[61]The PPC/AIX port is included upstream in OpenJDK from version 8u20,[62]and the AArch64 port will be included from version 9.[63]

See also

[edit]

References

[edit]
  1. ^"[SECURITY] IcedTea 3.31.0 for OpenJDK 8 Released!".mail.openjdk.java.net.April 20, 2024.RetrievedApril 20,2024.
  2. ^"[SECURITY] IcedTea 2.6.28 for OpenJDK 7 Released!".mail.openjdk.java.net.November 8, 2021.RetrievedApril 26,2022.
  3. ^Fitzsimmons, Thomas (2007-06-08)."Credits".Retrieved2007-06-08.
  4. ^"Free but Shackled – The Java Trap- GNU Project – Free Software Foundation".
  5. ^Angel, Lillian (2008-04-04)."IcedTea6 1.1 Released".Archived fromthe originalon 2008-10-31.Retrieved2008-07-12.
  6. ^Sharples, Rich (2008-06-19)."Java is finally Free and Open".Archived fromthe originalon 2008-06-20.Retrieved2008-06-19.
  7. ^Hughes, Andrew John (2011-10-19)."IcedTea 2.0 Released!".Archived fromthe originalon 2012-02-14.Retrieved2012-01-31.
  8. ^Hughes, Andrew John (2016-04-10)."IcedTea 3.0 Released!".Archived fromthe originalon 2016-04-21.Retrieved2016-04-12.
  9. ^Hughes, Andrew John (2017-01-11)."Discontinuation of Support for IcedTea 1.x".Archived fromthe originalon 2017-01-13.Retrieved2017-01-12.
  10. ^"Open JDK is here!".Sun Microsystems. 2007-05-08.Retrieved2007-05-09.
  11. ^See alsoJava Class Library Licensing
  12. ^"Sun's OpenJDK FAQ".Archived fromthe originalon 2007-05-26.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
  13. ^abHaley, Andrew (2007-06-07)."Experimental Build Repository at icedtea.classpath.org".Archived fromthe originalon 2007-08-20.Retrieved2007-06-09.
  14. ^abFitzsimmons, Thomas (2007-05-18)."Plans for OpenJDK".Retrieved2007-05-22.
  15. ^"Red Hat and Sun Collaborate to Advance Open Source Java Technology".Red Hat.2007-11-05. Archived fromthe originalon 2007-08-25.Retrieved2007-11-06.
  16. ^Phipps, Simon (November 5, 2007)."Red Hat Joins OpenJDK".Archived fromthe originalon February 22, 2008.Retrieved2007-11-14.
  17. ^Reinhold, Mark (2007-11-05)."Welcome, Red Hat!".Archived fromthe originalon 2008-02-22.Retrieved2007-11-14.
  18. ^Haley, Andrew (May 16, 2008)."Open source project: OpenJDK".Archived fromthe originalon October 10, 2008.RetrievedMay 21,2008.
  19. ^"Bug ID 6523403: OSS CMM: Need to provide lcms library with PYCC and LINEAR_RGB OS ICC profiles".Retrieved2008-07-12.
  20. ^"Bug ID 6604044 java crashes talking to second X screen".Retrieved2008-07-12.
  21. ^Sharples, Rich (2008-06-19)."Java is finally Free and Open".Archived fromthe originalon 2008-06-20.
  22. ^Haley, Andrew (2009-04-01)."New project: getting rid of IcedTea local patches".Retrieved2009-09-05.
  23. ^Wielaard, Mark (2007-06-07)."Experimental Build Repository at icedtea.classpath.org".Archived fromthe originalon 2007-06-19.Retrieved2007-06-09.
  24. ^Wielaard, Mark (2007-05-30)."OpenJDK6 b10 source posted".Retrieved2008-07-12.
  25. ^"Changes in OpenJDK7 b53".2009-04-02. Archived fromthe originalon 2009-04-06.Retrieved2009-09-05.
  26. ^"Gervill: Wiki: Home — Project Kenai".Archived fromthe originalon 2013-06-28.
  27. ^Java SE 6 Update 12 Release Notes.Java.sun. Retrieved on 2013-07-18.
  28. ^Darcy, Joe (2009-06-08)."OpenJDK and the new plugin".Retrieved2009-09-05.
  29. ^Hughes, Andrew John (2009-08-21)."Opensource plugin&webstart – when?".Retrieved2009-09-05.
  30. ^ Bhole, Deepak (2009-08-26)."IcedTea Java plugin with Chromium and Firefox 3.6A1".Retrieved2009-09-05.
  31. ^Bhole, Deepak (2011-02-02)."First release of IcedTea-Web!".Retrieved2011-04-04.
  32. ^"Where to find the source of the closed-source browser plugin?".14 April 2013.
  33. ^"Java Client Roadmap Update"(PDF).March 2018.Retrieved2018-12-29.Oracle will not include Java Web Start in Java SE 11 (18.9 LTS) and later.
  34. ^Adams, George (30 April 2019)."What's up at AdoptOpenJDK".Medium.Retrieved30 April2019.
  35. ^Kung, Francis (2007-06-12)."Mauve test run results".Retrieved2007-06-12.
  36. ^Wielaard, Mark."jtreg testing integrated".Retrieved2008-07-12.
  37. ^"Ark Linux packages".Ark Linux. Archived fromthe originalon 2008-03-14.Retrieved2008-02-23.
  38. ^"JRE and JDK Moved to Community".Arch Linux.Retrieved2009-07-30.
  39. ^"Debian Building Instructions".IcedTea Wiki. Archived fromthe originalon 2008-05-23.Retrieved2008-05-21.
  40. ^"Debian -- Package Search Results -- icedtea".
  41. ^"java-1.6.0-openjdk.git".Archived fromthe originalon 2014-03-28.Retrieved2014-03-28.
  42. ^"java-1.7.0-openjdk.git".Archived fromthe originalon 2014-03-28.Retrieved2014-03-28.
  43. ^"Ubuntu – Details of icedtea-java7-jre in gutsy".Ubuntu Packages.Retrieved2007-10-26.
  44. ^"Ubuntu – Details of package openjdk-6-jre in hardy".Ubuntu Packages.Retrieved2008-07-12.
  45. ^Wielaard, Mark (2007-06-07)."IcedTea".Retrieved2007-06-09.
  46. ^Benson, Gary (2007-11-06)."Gary's guide to porting IcedTea".Archived fromthe originalon 2012-07-12.Retrieved2008-01-26.
  47. ^"Zero-Assembler Project".Retrieved2008-08-22.
  48. ^"ZeroSharkFaq".icedtea.classpath.org. Archived fromthe originalon 2009-08-23.Retrieved2009-05-30.
  49. ^abBenson, Gary (2008-05-28)."28 May 2008".Red Hat.Retrieved2008-05-30.Shark is a platform-independent JIT for HotSpot, to complement the zero-assembler interpreter we've been using
  50. ^Benson, Gary (2009-05-21)."Zero and Shark: a Zero-Assembly Port of OpenJDK".java.net. Archived fromthe originalon 2009-05-31.Retrieved2009-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.
  51. ^Benson, Gary (2008-02-01)."1st February 2008".Archived fromthe originalon 2012-07-10.Retrieved2008-02-03.
  52. ^Haley, Andrew (2008-01-31)."Making zero-assembler the default on ppc".Retrieved2008-02-03.
  53. ^Angel, Lillian (2008-02-13)."IcedTea 1.6 Released with Zero-assembler and JNLP support!".Red Hat.Retrieved2008-02-13.
  54. ^Benson, Gary (2008-03-31)."31 March 2008".Red Hat.Retrieved2008-05-30.
  55. ^"6976186: integrate Shark HotSpot changes".hg.openjdk.java.net.Retrieved2014-03-28.
  56. ^Haley, Andrew (2009-09-09)."IcedTea6 1.6 Released!".Retrieved2014-03-28.
  57. ^Hughes, Andrew (2012-06-13)."[SECURITY] IcedTea 2.1.1 & 2.2.1 Released!".Archived fromthe originalon 2014-03-29.Retrieved2014-03-28.
  58. ^"AArch64 Port Project".Retrieved2014-03-28.
  59. ^Hughes, Andrew (2014-03-28)."IcedTea 2.3.14 & 2.4.6: Considered ARMful Released!".Archived fromthe originalon 2014-03-29.Retrieved2014-03-28.
  60. ^"OpenJDK PowerPC/AIX Port".Archived fromthe originalon 2014-03-28.Retrieved2014-03-28.
  61. ^Hughes, Andrew (2014-01-23)."PPC Port Available in IcedTea 2.x HEAD".Archived fromthe originalon 2014-02-20.Retrieved2014-03-28.
  62. ^Simonis, Volker (2015-09-25)."JEP 175: PowerPC/AIX Port".Retrieved2016-04-13.
  63. ^Haley, Andrew (2015-12-16)."JEP 237: Linux/AArch64 Port".Retrieved2016-04-13.
[edit]