2009/01/13

du café commerce équitable pour freebsd

Bon alors voila, depuis quelque temps le support des BSD (MacOS X compris) pour openJDK est officialisé au sein de projet bsd-port.

Ne voyant toujours rien venir dans les ports (on est obligé de se farcir du java pas libre et surtout de ce faire chier à dl à la mano tous les trucs qui vont bien pour pouvoir l'installer en acceptant des licences à droite et à gauche), je dis que je vais me le builder moi même depuis les sources.

Il y a deux possibilités d'avoir l'OpenJDK en libre : la version officielle, et la version icedtea.

Je me suis d'abord rabattu sur la version Icedtea, en effet la version 1.8 annonce intégrer le projet bsd-port. Icedtea me semblait plus simple de prime abord car toutes les dépendances sont testées par les autotools, et qu'un presque simple ./configure && make && make install devrait faire l'affaire.

C'est sans compter sur les linuxismes, en effet, il lui faut gawk, md5sum (appelé md5 sur FreeBSD donc il ne le trouve pas) plus plein de choses à droite à gauche. En ayant eu marre de patcher toutes les 5 mins les autotools, de rajouter les 25000 dépendances qui me sont inutiles, j'ai honteusement lâché l'affaire pour me rabattre sur l'OpenJDK officiel. Et là magique simple et rapide pour le faire (pas rapide à compiler par contre) :

Tout d'abord il faut commencer par préparer son environnement, pour cela il faut installer :

Ensuite il faut récupérer les sources pour cela deux manières : celle recommandée mais chiantes (que j'ai moi) passe par mercurial, l'autre passe par un snapshot mercurial :

installer mercurial ajouter le plugin forest :

$ hg clone http://www.bitbucket.org/pmezard/hgforest-crew/
$ cp hgforest-crew/forest.py /laoujaienvie/forest.py

Puis dans le ~/.hgrc, ajouter :

[extensions]
hgext.forest=/laoujaienvie/forest.py

cloner l'aborescence openjdk :

$ hg fclone http://hg.openjdk.java.net/bsd-port/bsd-port

récupérer les plugs icedtea

$ fetch http://www.intricatesoftware.com/distfiles/jdk-7-icedtea-plugs-1.6a.tar.gz

compiler le tout (attention c'est long)

$ gmake \
ALT_BOOTDIR=/usr/local/diablo-jdk1.6.0/ \
ALT_FREETYPE_HEADERS_PATH=/usr/local/include \
ALT_FREETYPE_LIB_PATH=/usr/local/lib \
ALT_BINARY_PLUGS_PATH=/home/build/jdk-7-icedtea-plugs \
ANT_HOME=/usr/local \
NO_DOCS=true \
HOTSPOT_BUILD_JOBS=1 \
OPENWIN_HOME=/usr/local \
OPENWIN_LIB=/usr/local/lib \
X11_PATH=/usr/local

Attention pour tout cela il vous faudra environ 1.2Go d'espace disque.

Une fois toute cette opération terminée vous obtiendrez dans le rép bsd-port/build un joli répertoire bsd-i586 ou un joli répertoire bsd-amd64 suivant votre archi contenant votre jdk libre tout propre.

La seconde méthode consiste à ne pas utiliser mercurial mais à prendre un snapshot depuis l'hgweb

Par exemple, pour la dernière version disponible :

$ fetch http://hg.openjdk.java.net/bsd-port/bsd-port/archive/tip.tar.bz2

Le reste est identique.

Résultat :

$ /home/build/bsd-port/build/bsd-i586/bin/java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.g7.0-internal-root_2009_01_12_16_54-b00)
OpenJDK Client VM (build 14.g0-b10, mixed mode)

Voila il ne me reste plus qu'a pondre une joli ports et hop.

A noter que pour la permière compilation il faudra quand même diablo-jdk, mais ensuite votre openjdk pourra compiler les nouvelles version d'openjdk.

PS: En fait ça me fait chier les post en Anglais :)

2007/11/28

Du thé glacé sous Linux

J'avais besoin de java sur mon amd64 (avec le plugin). Bon jusqu'à maintenant c'était pas gagné, mais heureusement Sun a libéré une Bonne partie de Java (OpenJDK) et les petits de gars de GNU classpath la complète avec leur propre implémentation, la mixture ainsi obtenu est icedtea, qui a le bon goût de venir avec un plugin officiel pour amd64 ce qui n'est pas le cas de la VM de SUN.
J'en ai donc fait un PKGBUILD qui compile parfaitement sous mon archlinux, et j'ai ainsi un java fonctionnel et libre.

Voila pour plus d'informations : le PKGBUILD a tester : icedtea.tar.gz
Je n'ai tester que sur amd64 mais il devrait fonctionner sur x86.
Il sera disponible sur mon AUR dès qu'il aura été tester et valider sur x86

PS: 2h30 de compilation et plus de 3G de consommés quand même, beau bébé.

EDIT : Résultat

java version "1.7.0"
IcedTea Runtime Environment (build 1.7.0-root_28_nov_2007_12_45-b00)
IcedTea 64-Bit Server VM (build 11.0-b05, mixed mode)

Pages : 1