# IcedTea

IcedTea es un proyecto de desarrollo e integración de software creado por Red Hat en junio de 2007. El objetivo es hacer que el software OpenJDK publicado por Sun Microsystems como software libre en 2007 sea usable sin que sea necesario ningún otro software que no sea software libre. Para Red Hat, esto haría posible añadir OpenJDK a la distribución Linux Fedora, así como a otras distribuciones.

## Historia

El proyecto es consecuencia de la publicación por parte de Sun de la máquina virtual HotSpot y del compilador javac en noviembre de 2006 y de la mayor parte del código fuente de las bibliotecas Java en mayo de 2007. Sun los publicó bajo los términos de la licencia GPL versión 2. Una parte de librerías Java no se liberaron debido a que pertenecían a terceras entidades ajenas a Sun Microsystems.
Debido a la falta de estos componentes, no es posible crear OpenJDK únicamente con componentes que sean software libre. El objetivo de Sun es reemplazar estas partes que permanecen propietarias y de código cerrado con implementaciones alternativas y hacer las librerías Java completamente libres y de código abierto. Dado que parte de este código cerrado incumbe al JDK, Sun continuará usando este código en las publicaciones comerciales hasta que se hayan reemplazado con alternativas libres plenamente funcionales.
El proyecto IcedTea empezó en junio de 2007, con la creación de repositorio proporcionado por el equipo del proyecto GNU Classpath.
El equipo no pudo llamar a su software "OpenJDK" porque es marca registrada propiedad de Sun Microsystems, así que decidieron usar temporalmente el nombre de "IcedTea".

## Objetivos

El proyecto IcedTea empezó con dos objetivos. El primer objetivo es hacer posible para el compilador de Java de GNU compilar el código de OpenJDK. El problema era que el único programa que podía compilar el software OpenJDK era el JDK de Sun, que consta del propio OpenJDK más unas extensiones propietarias. Así que el proyecto Iced Tea tenía que hacer posible compilar el código usando únicamente software libre. Cuando esto se consiguió, la versión resultante de OpenJDK realizada por IcedTea pudo compilarse a sí mismo (compilación autocontenida), escapando de la necesidad del uso de software no libre para futuras compilaciones.
La segunda tarea, la que está desarrollándose actualmente, es rellenar los huecos que existen en OpenJDK debido a que Sun no liberó algunas partes del código.

## Progreso

En junio de 2007, IcedTea fue capaz de compilarse a sí misma, funciona en Fedora 7 y pasa correctamente una parte significativa de los test de la suite Mauve, conjunto de tests del proyecto GNU Classpath.
También se compila bajo Gentoo y empieza a ser capaz de compilarse y funcionar en Ubuntu y Debian, pero el soporte en estas dos plataformas aún no está maduro.
Debido a que IcedTea es básicamente un empaquetado de OpenJDK, la mayor parte de Java funciona. Algunas partes están deshabilitadas y se encuentras en diversos estados:
* Las librerías gráficas (AWT y Swing) empiezan a funcionar correctamente (con soporte de fuentes básicas usando FreeType) desde principios de julio de 2007
* El sonido y el protocolo SNMP están deshabilitados.
* La criptografía ha sido reemplazada por su equivalente en la librería GNU Classpath.
* Javascript está deshabilitado.

## Arquitectura

OpenJDK contiene aproximadamente (en mayo de 2007) un 4% de código cerrado, el cual está empaquetado como plugins binarios y son requeridos para compilar y usar la JDK.
IcedTea reemplaza esos plugins binarios con los equivalentes desarrollados por GNU Classpath, compila todo usando el GNU Compiler for Java y opcionalmente hace bootstrapping de sí mismo utilizando la máquina virtual Java HotSpot y el compilador Java javac acabados de construir.