OpenERP et Odoo Community Edition : un logiciel libre "diachroniquement piégé", l'analyse de Richard Stallman
Par SISalp le samedi 7 mai 2016, - Réussir son projet Odoo ou Tryton - Lien permanent
OpenERP, puis Odoo Community Edition, bien que diffusés sous licences libres, d'abord AGPL puis LGPL, ne respectent pas totalement la liberté de choix des utilisateurs que prévoit la philosophie de la communauté du logiciel libre.
Ce qui suit est une traduction non officielle de l'article de Richard Stallman publié le 11 avril 2016.
Notes de SISalp:
La situation a été détaillée dans différents articles de recommandation de SISalp dont les plus récents publiés en 2016 sont :
- Le point sur Odoo en 2016 : Les préconisations d'utilisation d'Odoo V9.0 comme logiciel libre de gestion
- Le point sur Odoo en 2016 : Rester sur la version Odoo V8.0 peut il être une alternative au changement de licence d'Odoo V9 ?
- Openerp V5.0, 6.0, V6.1 et V7.0 : Quelles possibilités de mise à jour ?
Dans ce dernier article, SISalp mentionnait le projet Open Upgrade communautaire qui tente de réaliser la fonction de reformatage des bases de données pour les adapter à chaque nouvelle version qu'évoque Richard Stallman dans son analyse.
Le contenu ci-dessous est sous la licence creative commons, veuillez vous reporter à l'original pour plus de détails.
Lorsque le logiciel libre dépend de logiciel non libre par Richard Stallman
When Free Software Depends on Nonfree
https://www.gnu.org/philosophy/when-free-depends-on-nonfree.html
Quand un programme est un logiciel libre (libre comme dans la liberté), cela signifie qu'il donne aux utilisateurs les quatre libertés ( gnu.org/philosophy/free-sw.html ) de sorte qu'ils contrôlent ce que le programme fait. Dans la plupart des cas, cela est suffisant pour la distribution du programme soit éthique; mais pas toujours. Il y a d'autres problèmes qui peuvent survenir dans des circonstances particulières. Cet article décrit un problème subtil, où la mise à niveau du programme libre nécessite l'utilisation d'un programme non libre.
Si l'utilisation du programme libre dépend inévitablement sur un autre programme qui est non libre, nous disons que le programme libre est "piégé". Son code est un logiciel libre, et vous pouvez être en mesure de copier des morceaux de son code dans d'autres programmes libres avec un bon résultat éthique. Mais vous ne devriez pas exécuter le programme piégé, parce que cela implique de remettre votre liberté à l'autre programme nonfree.
Quelqu'un qui respecte les principes du logiciel libre ne saurait pas sciemment faire un programme piégé. Cependant, de nombreux programmes libres sont développés par des personnes ou des entreprises qui ne prennent pas particulièrement ces principes en compte, ou ne comprennent pas le problème.
la dépendance à l'égard d'un programme non libre peut prendre diverses formes. La forme la plus simple est quand le langage de programmation utilisé n'a pas d'implémentation libre. Les premiers programmes que j'ai écrits pour le système GNU dans les années 1980, y compris GNU Emacs, GDB et GNU Make, devaient être compilés avec le compilateur C non libre AT & T, parce qu'il n'y avait pas de compilateur libre C jusqu'à ce que je aie écrit GCC. Heureusement, ce genre de problème est surtout une chose du passé; nous avons maintenant des compilateurs et des plates-formes libres pour à peu près tous les langages que quelqu'un puisse utiliser pour écrire des logiciels libres.
Nous pouvons libérer le programme de ce genre de piège en le traduisant dans un autre langage, ou en libérant une implémentation libre du langage dans lequel il est écrit. Ainsi, quand une implémentation de Java complète et libre est devenue disponible, cela a libéré tous les programmes Java du Piège Java .
Ce type de dépendance est conceptuellement simple, car il découle de la situation à un instant donné dans le temps. A l'instant T, le programme libre P ne fonctionnera pas sans la plate-forme de programmation non libre Q. Pour emprunter un terme à la linguistique, cette relation est «synchrone».
Plus récemment, nous avons vu un autre type de dépendance dans les programmes de base de données, où vous pouvez construire et exécuter une version donnée du programme dans le monde libre, mais la mise à niveau de la version N à la version N + 1 nécessite un programme non libre.
Cela se produit parce que le format interne de la base change entre la version N et la version N + 1. Si vous avez été utilisé la version N, vous avez probablement une grande base de données existante dans le format de la version N. Pour passer à la version N + 1 du logiciel de base de données, vous devez reformater cette base de données.
Si la façon dont vous êtes censé le faire est d' exécuter un programme base de données de reformatage de la base de données non libre, ou en utilisant le service du développeur en mode SaaSS, le logiciel de base de données est piégé, mais d'une manière plus subtile. Chacune des versions du programme de base de données peut être utilisé sans logiciel non libre ou service SaaSS. Le problème se pose lorsque vous essayez d'utiliser le programme pour le long terme, ce qui implique qu'il faut le mettre à niveau de temps à autre; vous ne pouvez pas l'utiliser de cette façon sans certains logiciels non libres ou équivalent. Ce programme de base de données est piégé dans la durée, nous pourrions l'appeler "diachroniquement piégé," pour emprunter un autre terme de la linguistique.
Par exemple, le programme OpenERP, bien que libre, est diachroniquement piégé. GNU-Health , notre package libre pour la gestion d'un hôpital, a d'abord utilisé OpenERP. En 2011, le développeur GNU-health, Luis Falcón, a découvert que la mise à niveau vers la prochaine version d'OpenERP nécessitait l'envoi de la base de données (contenant les données médicales des patients) au serveur d'OpenERP pour le reformatage. C'est le SaaSS ( Service as a Software Substitute): il demande à l'utilisateur de GNU-Health (un hôpital) de confier ses propres règles de traitement et ses données à l'entreprise qui a développé OpenERP. Plutôt que de s'agenouiller, Falcón a réécrit GNU-Health pour utiliser Tryton à la place.
L'utilisation de SaaSS est intrinsèquement équivalente à l'exécution d'un programme propriétaire avec une fonctionnalité d'espionnage et une porte dérobée universelle. Le service pourrait conserver une copie des bases de données que les utilisateurs reformatent. Même si nous pouvons faire confiance à la société qui gère le service de ne jamais montrer intentionnellement toute forme de données à quiconque, nous ne pouvons pas être sûr que ce ne sera pas accédé par les agences de renseignement de différents pays ou des craqueurs de sécurité (s'il vous plaît ne les appelez pas "hackers") .
Quand un programme est diachroniquement piégé, le libérer de son piège nécessite plus qu'un travail unique de programmation. Au contraire, le travail doit être refait en permanence, à chaque fois qu'il y a un changement dans le format de données. Le lancement d'un projet, avec l'engagement à long terme de continuer à le faire, n'est pas facile. Il peut être plus facile de faire pression sur l'entreprise pour qu'elle cesse d'essayer de piéger les utilisateurs-en rejetant le programme piégé jusqu'à ce qu'il le fasse. Étant donné la difficulté de libérer le programme, vous feriez mieux de garder vos distances.
Il est possible d'essayer un programme libre diachroniquement piégé sans logiciel non libre, mais si vous voulez aller plus loin, vous devez vraiment éviter de l'utiliser pour de vrai. Les entreprises et les particuliers trouveront de bonnes alternatives libres qui ne présentent pas un tel problème; Ce qui est nécessaire pour éviter le piège, c'est de le détecter.