Una vez sergi me preguntó, primero a mi y luego a todos en esta encuesta, porque razón Gentoo también compila los .java… yo no me había fijado que realmente sí los compila y también me pregunté porqué… y si realmente es necesario.
Lo único que se nos ocurrió es que de esa manera es más fácil detectar troyanos por ejemplo… o que simplemente como Gentoo es una distribución que se basa en la compilación de código (meta-distribución, sólo distribuye los ebuilds no los paquetes), pues simplemente también hace lo mismo con el software java…
Hoy me he encontrado una página que da unas cuantas razones a favor de compilar los paquetes java:
- Els usuaris finals poden voler aplicar un pedaç o manipular les fonts de manera manual entre els passos src_unpack i src_compile.
- La variable USE afectarà de manera normal en quines característiques es compilaran i quines dependències volem permetre.
- Quan es troben defectes de seguretat, volem poder distribuir un “hotfix” (un pedaç o apanyo, vamos) de manera immediata, ja que no sempre es possible esperar que els desenvolupadors/mantenidors del projecte treguin una versió corregida. Amb paquets únicament binaris l’única sol·lució és deshabilitar el paquet i emmascarar-lo (masked).
- Es habitual la necessitat d’aplicar modificacions especifiques de Gentoo i pedaços intermedis quan hi han períodes llargs de temps entre versions, aixó només es pot fer quan es pot compilar el codi font.
- Hi ha una correspondència obvia entre codi font i els binaris obtinguts, de manera que es garanteix a l’usuari que no hi ha troians amagats als binaris (no hi ha garantia que no n’hi hagi al codi font, però en aquest cas són més fàcils de trobar).
- Garantim als nostres usuaris que el codi font existeix i compila correctament, la base del desenvolupament open-source tal com l’entenem.
- Per paquets de llibreries immadures, on la documentació normalment és insuficient, l’usuari pot utilitzar l’eina javadoc sobre els fonts per aconseguir més informació, sense haver d’estudiar tot el codi font.
*Traduit per Spounge. Font: http://dev.gentoo.org/~karltk/why-build-java-code.html
Recordad que cuando compilamos código java el resultado es un código intermedio, el mismo código intermedio que si lo compilas desde windows/linux por decir algo, y que lo único que cambia es el jre (runtime), que se encarga de interpretar ese código al código máquina de cada plataforma.
Visto el documento con las razones… ¿Te parecen razones suficientemente contundentes?, ¿Vale realmente la pena compilar los paquetes java? ¿Viva Mono…? Ésta última es broma xD
Autor: jBilbo