Projet : publication sur le Logiciel Libre en Chimie

  1. Qu'est-ce qu'un logiciel libre ('free software') ?

    Un logiciel libre est un logiciel en accord avec ces principes :

    1. Redistribution libre
      La licence d'un logiciel libre ne doit pas empêcher un contractant de vendre ou donner le logiciel sous forme de composant d'un ensemble (distribution) constitué de programmes provenant de différentes sources. La licence ne doit requérir ni redevance ni rétribution sur une telle vente.

    2. Code source
      Le programme doit inclure le code source, et la diffusion sous forme de code source comme sous forme de programme compilé doit être autorisée. Quand une forme quelconque du produit est distribuée sans le code source, il doit être clairement indiqué par quel moyen il est possible d'obtenir le code source. pour une somme qui ne doit pas excéder un coût raisonnable de reproduction, ou en le chargeant gratuitement via Internet. Les formes intermédiaires de code source, telles que celles résultant d'un pré-processeur ou d'un traducteur, sont interdites.

    3. Applications dérivées
      La licence doit permettre les modifications et les applications dérivées, et elle doit permettre à celles-ci d'être distribuées sous les mêmes termes que la licence du logiciel original.

    4. Intégrité du code source de l'auteur
      La licence peut défendre de distribuer le code source modifié seulement si elle autorise la distribution avec le code source de fichiers correctifs (patch files) destinés à modifier le programme au moment de la génération. La licence doit autoriser explicitement la distribution de logiciels générés à partir de code source modifié. Elle peut requérir que les applications dérivées portent un nom ou un numéro de version différent de ceux du logiciel original.

    5. Aucune discrimination de personne ou de groupe
      La licence ne doit discriminer aucune personne ou groupe de personnes.

    6. Aucune discrimination de champ d'application
      La licence ne doit pas défendre d'utiliser le logiciel dans un champ d'application particulier. Par exemple, elle ne doit pas défendre l'utilisation du logiciel dans une entreprise ou pour la recherche génétique.

    7. Distribution de licence
      Les droits attachés au programme doivent s'appliquer à tous ceux à qui il est distribué sans obligation pour aucune de ces parties de se conformer à une autre licence.

    8. La Licence ne doit pas être spécifique à un produit
      Les droits attachés au programme ne doivent pas dépendre du fait que le programme fait partie d'un logiciel en particulier. Si le programme est séparé du logiciel dans lequel il est intégré, et utilisé ou distribué selon les termes de la licence, toutes les parties à qui le programme est redistribué doivent avoir les mêmes droits que ceux accordés avec le logiciel dans lequel il est intégré à l'origine.

    9. La licence ne doit pas imposer de restrictions sur d'autres logiciels
      La licence ne doit pas imposer de restrictions sur d'autres logiciels distribués avec le programme sous licence. Par exemple, la licence ne doit pas exiger que les autres programmes distribués sur le même support physique soient aussi des logiciels libres..

    Note : dans le terme anglais 'free software', le mot 'free' ne signifie pas gratuit, mais libre. L'ambiguïté est levée quand le terme est traduit en Français.
  2. Quels intérêts pour la Science ?

    1. La validation scientifique
      Tout résultat publié doit être reproductible et produit de manière claire et précise. Comment vérifier le calcul d'une boîte noire, et en particulier, d'en valider le résultat ? L'utilisateur ne peut pas en connaître le fonctionnement. Il doit se fier à la parole du concepteur. N'est-ce pas là une attitude ayant attrait à la croyance plutôt qu'à la rigueur scientifique ? Ainsi, pouvoir étudier le code source du programme permet de vérifier les outils utilisés, ainsi que la manière dont ils le sont. Alors, le résultat des calculs est issu d'un algorithme connu et certifié.

    2. Des outils communs
      La recherche est le fruit de collaborations, et chaque résultat publié est issu de recherches effectuées par de nombreuses équipes de part le monde. Pourquoi n'en serait-il pas de même avec les outils informatiques que nous utilisons ? Cela amènerait à un développement plus rapide et efficace de chaque outil. Par exemple, il est rare qu'un groupe de recherche en chimie possède des personnes sachant développer sur toutes les plate-formes. L'ouverture du code permet à d'autres équipes de développer sur un système qu'elle maîtrise et de fournir un logiciel plurivalent.

    3. Accessible à tous
      La libre distribution du logiciel permet au plus grand nombre de profiter de l'outil. Cela permet au laboratoire consacrant la majeure partie de leur budget aux produits chimiques et vaisselles de laboratoire de pouvoir accéder à un outil puissant.

    4. Adaptable à tous
      Le code étant libre, il peut être modifier par quiconque afin de l'adapter au mieux au besoin d'un laboratoire.

    5. Protection du logiciel

      Contrairement à ce qu'on pourrait penser, adopter une licence libre s'est aussi protéger son logiciel. En effet, un logiciel sans licence, c'est être à la merci du plagiat et de la non-reconnaissance d'un travail.
    6. Pérénité du code
      En cas de faillite d'une société commercialisant un produit, ou de l'arrêt du développement d'un logiciel par un groupe ou un particulier, quiconque peut reprendre le projet et continuer à le développer ou le maintenir. Ceci assure de pouvoir ouvrir des fichiers qui ont été crée dix ans auparavant.

    7. Des produits plus fiables
      Le logiciel libre bénéficie des efforts de l'ensemble des utilsateurs qui travaille dans le but de corriger les problèmes. Les utilisateurs ne se contentant pas seulement de signaler les bogues, peuvent aussi les corriger et envoyer leurs corrections. Les utilisateurs travaillent ensemble, communiquant par l'intermédiaire du courrier électronique, pour venir à bout des problèmes.

  3. Où trouver ces logiciels ?

    Quelques sites regroupent des liens vers les sites de développeurs.

    http://fsfeurope.gnu.org/france/science.fr.html
    http://www.openscience.org
    http://www.bioinformatics.org
    ...

    Malheureusement, tous les logiciels n'y sont pas listés. Beaucoup de logiciels sont encore développés sans être distribués. Le fait de faire connaître le logiciel libre permettra de les faire sortir de l'ombre.

  4. Comment mettre un logiciel sous licence libre?

    1. Méthode générale
      Pour mettre un logiciel libre sous licence libre, il faut d'abord déclarer qu'il est sous copyright, ensuite il faut ajouter les conditions de distribution, qui sont un outil légal donnant à chacun le droit d'utiliser, de modifier, et de redistribuer le code du programme, ou tous les programmes qui en sont dérivés. Ainsi, le code et ses libertés sont légalement indissociables.

    2. L'en-tête du code source
      Il est nécessaire que chaque fichier du code source contienne l'en-tête suivante :

      <Indiquer ici le nom du programme et ce qu'il fait>
      Copyright (C) yyyy  <Nom de l'auteur>
      
      This program is free software; you can redistribute it and/or modify
      it under the terms of the <Nom de la licence> as published by
      <Organisme ayant rédigé cette licence>
      
      This program is distributed in the hope that it will be useful, but 
      WITHOUT ANY WARRANTY; without even the implied warranty
      of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      See the licence for more details.
      
      You should have received a copy of the <Nom de la licence> along with
      this program; if not, contact <Adresse permettant d'obtenir le texte
      intégrale de la licence>.
      

    3. La licence
      Le programme doit être distribué sous les termes d'une licence d'utilisation. Plusieurs licences libres existent, à vous de choisir celle que vous souhaiter appliquer. Le logiciel, ainsi que ses sources doivent être distribués avec le texte de licence d'utilisation, ou bien un lien permettant de la retrouver sur un autre média (Internet, ...)

  5. Sources