IcedTea
IcedTea ist ein vom Linux-Distributor Red Hat initiiertes Gemeinschaftsprojekt zur Entwicklung freier Java-Plattformsoftware.
Das Projekt arbeitet(e) an folgenden Produkten:
- OpenJDK
- freie Implementierung der Java Platform, Standard Edition (Java SE), die in einer Variante für Version 6 und einer für Version 7 der Java-SE-Spezifikation gepflegt wird. Die OpenJDK-Entwicklungszweige von IcedTea haben weniger restriktive Anforderungen zur Aufnahme von Code als die der Sun-Repositorien, wobei IcedTea selbst auch zum offiziellen Zweig beiträgt. IcedTea-Versionen lassen sich mit dem GNU Build System (Autotools) erstellen (durch einen Wrapper um die Make-Dateien der Hauptversion). Bei den IcedTea-Versionen wurde erstmals die Ersetzung verbleibender proprietärer Reste im offiziellen OpenJDK-Code vollendet.
- Webbrowser-Zusatzmodul
- freies Java-Zusatzmodul für (NPAPI-fähige) Webbrowser. Es ist als erstes seiner Art auch auf 64-Bit-Linux-Systemen verfügbar.
- Netx<ref>jnlp.sf.net/netx</ref>
- eine freie Implementierung von Java Web Start die inzwischen als OpenWebStart weiter entwickelt wird.
Da Suns Browsermodul und Web-Start-Lösung trotz wiederholter Offenlegungsversprechen weiterhin proprietär sind,<ref>mail.openjdk.java.net/pipermail/jdk6-dev/2009-June/000604.html</ref> stellen sie die einzigen freien ihrer Art dar.
Geschichte, Verdienste
Das Projekt wurde im Juni 2007 offiziell gestartet.
Ursprüngliches Ziel war die Erstellung einer lauffähigen und vollständig freien Version des OpenJDK, die auch bei ihrer eigenen Erstellung ohne die Hilfe proprietärer Software auskommt. Dies war notwendig, da die Rechte an einigen Code-Teilen nicht gänzlich im Besitz des ursprünglichen Herstellers Sun Microsystems waren und daher manche Teile nur in kompilierter Form vorlagen und ersetzt werden mussten, um eine vollständig freie Version zu erhalten.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20100204223153
| {{#ifeq: 20100204223153 | *
| {{#if: www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml | {{#invoke:WLink|getEscapedTitle|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} | {{#invoke:Webarchiv|getdomain|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20100204223153}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml | {{#invoke:WLink|getEscapedTitle|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} | {{#invoke:Webarchiv|getdomain|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20100204223153}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml | {{#invoke:WLink|getEscapedTitle|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} | {{#invoke:Webarchiv|getdomain|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml | {{#invoke:WLink|getEscapedTitle|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} | {{#invoke:Webarchiv|getdomain|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml | {{#invoke:WLink|getEscapedTitle|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} | {{#invoke:Webarchiv|getdomain|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| [www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml {{#if: www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml | {{#invoke:WLink|getEscapedTitle|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} | {{#invoke:Webarchiv|getdomain|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}} }}]
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20100204223153|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}}
|| {{#if: || }}
}}{{#if: www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml
| {{#if: {{#invoke:WLink|isBracketedLink|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml|archiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml|4}}|http}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
Dazu wurde in einem eigenen Entwicklungszweig eine neue OpenJDK-Version geschaffen, die mit Code aus dem GNU-Classpath-Projekt (freie Implementierung der Standardklassenbibliotheken) vervollständigt wurde. Dies geschah, wo in Suns Code proprietär gebliebene Bestandteile Lücken hinterlassen hatten, die bisher noch nicht gestopft waren. Sie konnte mit dem GNU Compiler for Java (GCJ) erstellt werden (– danach auch mit dem dabei selbstgebauten offiziellen Java-Compiler javac). Das Unterfangen war erfolgreich; im November 2007 konnten IcedTea-Pakete in Fedora 8 aufgenommen werden.
Mit der Unterzeichnung des Sun Contributor Agreement und der OpenJDK Community TCK License am 5. November 2007 durch Red Hat kann das IcedTea-Projekt nun zum offiziellen Zweig von OpenJDK beitragen.
Nachdem von IcedTea zunächst die Implementierung der Java SE 7 umgesetzt wurde, kam im April 2008 eine Variante namens IcedTea6<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20081031202342
| {{#ifeq: 20081031202342 | *
| {{#if: langel.wordpress.com/2008/04/04/icedtea6-11-released | {{#invoke:WLink|getEscapedTitle|langel.wordpress.com/2008/04/04/icedtea6-11-released}} | {{#invoke:Webarchiv|getdomain|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20081031202342}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: langel.wordpress.com/2008/04/04/icedtea6-11-released | {{#invoke:WLink|getEscapedTitle|langel.wordpress.com/2008/04/04/icedtea6-11-released}} | {{#invoke:Webarchiv|getdomain|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20081031202342}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: langel.wordpress.com/2008/04/04/icedtea6-11-released | {{#invoke:WLink|getEscapedTitle|langel.wordpress.com/2008/04/04/icedtea6-11-released}} | {{#invoke:Webarchiv|getdomain|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: langel.wordpress.com/2008/04/04/icedtea6-11-released | {{#invoke:WLink|getEscapedTitle|langel.wordpress.com/2008/04/04/icedtea6-11-released}} | {{#invoke:Webarchiv|getdomain|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: langel.wordpress.com/2008/04/04/icedtea6-11-released | {{#invoke:WLink|getEscapedTitle|langel.wordpress.com/2008/04/04/icedtea6-11-released}} | {{#invoke:Webarchiv|getdomain|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: langel.wordpress.com/2008/04/04/icedtea6-11-released | {{#invoke:WLink|getEscapedTitle|langel.wordpress.com/2008/04/04/icedtea6-11-released}} | {{#invoke:Webarchiv|getdomain|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20081031202342|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/}}
|| {{#if: || }}
}}{{#if: langel.wordpress.com/2008/04/04/icedtea6-11-released
| {{#if: {{#invoke:WLink|isBracketedLink|langel.wordpress.com/2008/04/04/icedtea6-11-released}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://langel.wordpress.com/2008/04/04/icedtea6-11-released/ }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref> für Version 6 der Java SE hinzu.
Nachdem die von IcedTea erstellten Pakete seit Juni 2008 die offiziellen Tests aus Suns Technology Compatibility Kit (TCK, speziell das Java Compatibility Kit, JCK) bestehen, dürfen sie nun die geschützte Bezeichnung OpenJDK tragen und das „Java-Compatible“-Logo führen.
In Ubuntu 8.04 (veröffentlicht 24. April 2008) und Fedora 9 (13. Mai 2008) war erstmals OpenJDK auf Basis von IcedTea6 enthalten.
Mit Version b10 von OpenJDK6 (März 2008) und Version b53 von OpenJDK7 (April 2009) konnte mittlerweile auch der offizielle Zweig alle (relevanten) proprietären Reste ersetzen.
Weblinks
- offizielle Webpräsenz (englisch)
Einzelnachweise
<references />