3. Java, logiciel librement diffusable (Freely Redistributable Software)

Contenu de cette section

Nombreux sont les programmeurs Linux qui tiennent à ce que les logiciels qu'ils produisent soient librement diffusables et qui évitent de consacrer trop de temps aux outils dont les sources ne sont pas largement disponibles. Dans cette partie sont discutées les relations de Sun et de Java avec le monde du logiciel librement diffusable.

(Attention~: l'auteur n'est pas juriste. Il n'est pas non plus employé, agent ni actionnaire de Sun Microsystems. Cette partie est fondée sur son interprétation des lois actuelles sur le copyright et sur la licence de Sun. Considérez-la comme une simple introduction, la page de Sun http://www.blackdown.org/Java/licensing.html étant la seule autorité en la matière. Si vous avez du mal à en saisir la signification, consultez un avocat.)

3.1 Peut-on redistribuer librement des programmes écrits en Java~?

Tout à fait, si vous en êtes l'auteur et choisissez de les placer sous une licence de type GPL ou BSD, ou encore si vous les déclarez du domaine public.

3.2 Quelles sont les droits et obligations associés aux exécutables de Java~?

La page de Sun concernant la licence indique que les exécutables de Java et HotJava peuvent être redistribués dans des applications (commerciales ou non), à condition qu'ils le soient gratuitement et sans être modifiés. Les entreprises ou individus qui souhaitent effectuer un nouveau portage du langage Java peuvent mettre les exécutables de ce portage à disposition sur l'Internet, mais ceux-ci doivent être gratuits et passer avec succès les tests publiquement disponibles (ces tests devraient être disponibles à la mi-1996). Les fichiers "diff" peuvent également être diffusés, à condition que les sources auxquels ils s'appliquent ne le soient pas.

Ainsi, vous pouvez donner à vos amis les exécutables de Java et HotJava ou bien les mettre sur un CD-ROM, ou encore en faire ce que vous voudrez, sauf les modifier et en diffuser les versions modifiées comme étant Java (ceci est compréhensible, Sun doit se protéger contre les chevaux de Troie diffusés sous le déguisement de Java). Les exécutables peuvent être redistribués librement.

3.3 Quelles parties des sources de Java peut-on redistribuer librement~?

Selon la page de Sun, aucune. Cependant, les choses sont en réalité moins strictes que cela. En pratique, tout le monde peut obtenir les sources de Java et HotJava à des fins non commerciales, d'enseignement ou de portage, et ce en remplissant sur le Web un formulaire qui en interdit la redistribution. De plus, il est permis de redistribuer des fichiers "diff" à appliquer aux sources.

Le seul cas où il faut signer un accord commercial avec Sun et leur verser de l'argent est celui de l'utilisation des sources à des fins commerciales. Cependant, il est dans l'esprit de cet accord de signer la licence d'utilisation non-commerciale des sources, de les récupérer, de les porter et de distribuer totalement librement les exécutables résultants~!

Sun affirme que le but principal d'un tel contrôle est d'empêcher le langage de muter vers des dialectes incompatibles. C'est ce vers quoi tend la licence. Elle semble cependant avoir été conçue de façon à permettre aux hackers de s'amuser gratuitement.

3.4 Quelle est l'attitude de Sun vis-à-vis des implémentations et outils Java gratuits~?

D'après la page de licence de Sun~:

Les spécifications du langage Java et de la machine virtuelle Java sont OUVERTES et sous copyright de Sun Microsystems, Inc.
Les nouvelles implémentations du compilateur et de l'interpréteur Java sont autorisées sans avoir besoin de licence de Sun, du moment que de telles implémentations sont créées à partir des spécifications publiées et sans utilisation directe ou indirecte d'implémentations, de propriétés intellectuelles ou marques commerciales de Sun.
(NdT~ la traduction ci-dessus n'engage ni Sun ni l'auteur de ce document) Ainsi, si vous voulez vous lancer dans la création d'un clone gratuit de Java à partir des spécifications publiées, Sun ne fera rien pour vous en empêcher.

Les gens de Sun utilisent le terme de "portage sauvage" pour désigner les implémentations de Java qui sont réalisées ailleurs que chez Sun ou ne s'appuient pas sur du code dont Sun detient la licence. Parfois le terme semble avoir l'une de ces significations, parfois l'autre. Ils ont l'air de penser que de telles implémentations existent déjà, mais nous ne savons pas où l'on peut les trouver, ni si elles sont gratuites. Les gens de Sun semblent envisager cette situation avec sérénité.

Sun a mis au point un ensemble de logiciels de validation. Sun affirme que sera certifié tout portage Java qui passe ces tests avec succès. Cela sera-t-il gratuit ? Nous n'en savons rien, mais Sun affirme que ces logiciels seront "disponibles publiquement" en 1996, ce qui semble orienter vers la gratuité. Ils sont également prêts à certifier des "portages sauvages" ce qui, apparemment, n'est pas encore arrivé.

3.5 Peut-on trouver des clones de Java dont les sources soient librement redistribuables~?

On peut trouver un clone du compilateur Java en début de développement. Il s'appelle guavac et vous pourrez trouver des informations à son sujet à l'adresse http://http.cs.berkeley.edu/~engberg/guavac .

Des rumeurs ont couru indiquant que le projet GROW de Cygnus Software prévoyait d'intégrer un interpréteur de code objet Java. Elles étaient fausses~: ce qui est en cours de développement est un traducteur de Java vers Scheme qui ne passe pas par le J-code. Pour plus de détails sur le projet GROW, consultez http://www.cygnus.com/tiemann/grow/ .

Erik Troan de Red Hat et l'auteur de ce document tentent de former un groupe de développement pour mener à bien le reste du travail. Actuellement, l'idée est d'utiliser guavac comme compilateur, Erik Troan s'occupant de la bibliothèque de classes et l'auteur de ce HOWTO de l'interpréteur de J-code (si Cygnus n'y parvient pas auparavant). Ce projet devait être nommé "Mr Coffee", ce qui était tentant, mais s'appellera probablement JOE (Java Open to Everyone).

3.6 Peut-on trouver des outils Java librement redistribuables~?

Vous pourrez trouver un mode GNU Emacs pour l'édition de Java à l'adresse
ftp://java.sun.com/pub/java/contrib/emacs .
Note~: ce mode requiert l'utilisation de c++-mode.el et ne fonctionne pas avec le mode cc-mode.el distribué avec Emacs 19.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre