Java

De Cliss XXI
Révision datée du 14 octobre 2007 à 09:20 par imported>SylvainBeucler (des liens!)
Sauter à la navigation Sauter à la recherche

Sun a libéré le code source de Java, une technologie utilisée par de nombreux programmes, libres ou non. C'est l'OpenJDK.

Il reste encore des parties non-libres, cependant, mais des projets pour un Java 100% existent.

État courant

Les distributions d'aujourd'hui (octobre 2007) proposent maintenant en standard la suite Java libre GIJ+GCJ+Classpath (http://www.gnu.org/software/classpath/), qui n'inclut pas de code de l'OpenJDK. Dans Debian:

Ça ne marche pas parfaitement.


IcedTea

http://icedtea.classpath.org/

IcedTea est un projet qui combine l'OpenJDK avec GCJ+Classpath pour obtenir un JDK 100% libre.

Il n'est pas encore présent dans les distributions. Il est également fortement lié à RedHat, donc le travail est plutôt disponible autour de Fedora (apparemment il y a des paquets binaires disponibles dans Fedora 8, en cours de développement).

Pour compiler IcedTea, il faut IcedTea (cf. [1], b21 est le nom de la version de septembre de l'OpenJDK). Comment on fait alors?

  • Soit on peut utiliser les paquets Fedora de développement; mais apparemment cela met à jour pas mal de composants de Fedora 7, qu'on aurait préféré laisser en l'état.
  • Soit on compile un version de IcedTea antérieure à fin septembre 2007 (la 1.4-f236... par exemple), puis on compile la dernière version d'IcedTea.

On va décrire ici la deuxième méthode plus en détail.

Compilation de IcedTea 1.4

La page des dépendences propose de rapatrier une longue liste de dépendances depuis le dépôt "développement" (yum --enablerepo=development). Sur Fedora 7, on va se contenter de les installer depuis le dépôt par défaut.

yum install /usr/bin/ecj mercurial cups-devel lesstif-devel libXp-devel libXtst-devel libXi-devel \
  xalan-j2 xerces-j2   libXt-devel libgcj freetype-devel gcc gcc-c++ wget java-1.5.0-gcj-devel \
  alsa-lib-devel firefox-devel glib2-devel gtk2-devel ant libXinerama-devel

Ensuite, ben on compile bêtement. Notez que vous devez avoir accès à Internet: l'archive IcedTea est de petite taille, mais récupère une version de l'OpenJDK chez Sun durant la compilation, d'environ 90Mo comprimés.

cd /usr/src/
wget http://icedtea.classpath.org/download/source/icedtea-1.4-f23640f520cf248e08d731f91fed62ed14e97b2f.tar.gz
tar xzf icedtea-1.4-f23640f520cf248e08d731f91fed62ed14e97b2f.tar.gz 
cd icedtea-1.4
./configure
make

Là j'ai attendu 6h, mais ça devrait aller plus vite sur des PCs plus récents. Compter tout de même un paire d'heures au minimum. Ça prend aussi 3,7Go d'espace disque. Mais le résultat est là:

IcedTea is served: openjdk/control/build/linux-i586

Compilation de IcedTea dernière version

On compile maintenant le nouveau IcedTea à l'aide du précédent:

cd /usr/src/
hg clone http://icedtea.classpath.org/hg/icedtea
cd icedtea
./configure --with-icedtea-home=/usr/src/icedtea-1.4/openjdk/control/build/linux-i586
make

Là j'ai des erreurs bizarres. D'abord deux avertissements, peut-être pas anodins:

WARNING: The version of ant being used is older than 
       the required version of '1.6'. 
       The version of ant found was . 
 
WARNING: The version of findbugs being used is older than 
       the required version of '1.1'. 
       The version of findbugs found was . 
 
Sanity check passed.

Puis surtout:

BUILD FAILED
/usr/src/icedtea/openjdk/langtools/make/build.xml:315: The following error occurred while executing this line:
/usr/src/icedtea/openjdk/langtools/make/build.xml:657: bootstrap java is not installed in /usr/src/icedtea/bootstrap/jdk1.6.0

Curieux...

La suite...

Maintenant il faudrait voir dans quelle mesure on ne pourrait pas faire une archive binaire directement installable.

À voir aussi: activer le plugin Java dans Mozilla, et d'autres navigateurs si possible.

On peut sans doute déjà faire des choses avec la version 1.4.