Aller au contenu principal
Licences · OPL-1, LGPL et AGPL

Ce que signifie la licence OPL-1 d'Odoo quand vous achetez un module : ce qu'elle permet, ce qu'elle interdit et comment elle cohabite avec LGPL et AGPL

L'OPL-1 tient en cinq paragraphes rédigés par Odoo S.A. Ils vous laissent utiliser, lire et modifier le module que vous avez acheté, et vous interdisent de le publier ou de le transmettre à une autre entreprise. Ce qu'ils ne disent pas compte tout autant : versions, bases de données et dépendances avec l'OCA.

Catalogue de modules FlexigoTech pour Odoo avec les versions compatibles, le prix en paiement unique et le lien vers l'App Store d'Odoo

OPL-1 figure sur la fiche de nombreux modules payants de l'App Store d'Odoo, et presque personne ne lit ce qu'il y a derrière : cinq courts paragraphes qu'Odoo S.A. publie dans sa documentation. Nous les lisons ici du côté de celui qui paie : ce qu'ils permettent, ce qu'ils interdisent, ce qu'ils passent sous silence et comment ils cohabitent avec LGPL et AGPL. C'est la lecture d'ingénieurs qui publient des modules, pas un conseil juridique.

Ce que dit l'OPL-1, paragraphe par paragraphe

La Odoo Proprietary License v1.0 dit cinq choses. Le module ne peut être utilisé (exécuté, modifié et exécuté une fois modifié) qu'avec une licence achetée à ses auteurs, « normalement via Odoo Apps », ou avec un accord écrit. Vous pouvez écrire des modules qui en dépendent sans copier son code. Il est interdit de publier, distribuer, sous-licencier ou vendre des copies, modifiées ou non. L'avis de copyright accompagne toutes les copies. Et il est fourni « en l'état », sans garantie. En pratique :

Vous voulez…Est-ce permis ?La nuance
L'utiliser dans l'Odoo de votre entrepriseOuiAvec une licence achetée ou un accord écrit avec l'auteur.
Le modifier pour vos processusOuiVotre version modifiée reste sous OPL-1.
Lire et auditer le codeOuiIl arrive lisible : l'App Store retire le code obscurci ou chiffré.
Écrire un module qui en dépendOuiSans copier son code et avec une licence compatible.
Le mettre sur un GitHub publicNonC'est publier. Sur Odoo.sh, avec un dépôt privé.
Installer un achat chez plusieurs clientsNonC'est distribuer. Chaque client achète le sien.
Le revendre ou l'intégrer à votre produitNonNi gratuitement ni modifié.

Ce que l'OPL-1 ne dit pas, et où trouver la réponse

La licence ne parle ni d'utilisateurs, ni de bases de données, ni de mises à jour, ni de versions. C'est celui qui vend qui les fixe. Sur l'App Store, ce sont ses conditions de vente : depuis Odoo 13, chaque version se vend séparément, donc l'acheter pour Odoo 18 ne vous donne pas celui d'Odoo 19 ; les modules tiers ne s'installent pas sur Odoo Online ; et vous disposez de deux mois pour réclamer s'il ne s'installe pas sur la version annoncée ou s'il lui manque une fonction promise par la fiche. Acheter la mauvaise version ne donne pas droit à un remboursement. Si vous achetez directement à l'auteur, c'est son accord qui prime : le nôtre prévoit une instance de production et jusqu'à deux instances de test, avec douze mois de support.

Pourquoi les modules payants sont sous OPL-1

Parce qu'avec une licence libre, la vente par copie ne tient pas. On peut vendre un module LGPL-3 ou AGPL-3, mais l'acheteur reçoit le droit de le redistribuer et pourrait le publier gratuitement, en toute légalité. L'OPL-1 est la licence qu'Odoo S.A. a écrite pour combler ce vide, et l'App Store la reconnaît grâce à la valeur OPL-1 du manifeste. Ce qui surprend : la protection est contractuelle, pas technique. Le module vous arrive en Python lisible, comme un module de l'OCA.

OPL-1, LGPL-3 et AGPL-3 dans la même base de données

Le cœur d'Odoo Community est sous LGPL-3, ce qui permet à d'autres modules de l'utiliser sans hériter de ses conditions ; c'est pourquoi des modules OPL-1 peuvent se superposer. Ceux de l'OCA sont généralement sous AGPL-3. Les avoir installés ensemble pour votre usage propre ne crée aucun conflit : l'AGPL oblige lorsqu'on distribue ou qu'on propose par réseau une version modifiée, par exemple dans un portail client. Le conflit apparaît quand un module dépend d'un autre. Voici comment l'App Store le résume :

Si votre module est…Il peut dépendre de…Il ne peut pas dépendre de…
AGPL-3AGPL-3, GPL-3 et LGPL-3OPL-1, OEEL-1 (Enterprise), autres licences OSI ni propriétaires
LGPL-3LGPL-3, OPL-1, OEEL-1, autres licences OSI et propriétairesAGPL-3 ni GPL-3
OPL-1LGPL-3, OPL-1, OEEL-1, autres licences OSI et propriétairesAGPL-3 ni GPL-3

Traduit : un module OPL-1 ne peut pas dépendre d'un module AGPL-3 de l'OCA, ni l'inverse, et une pièce qui importe les deux ne rentre sous aucune licence. Si le module OPL-1 dépend d'Enterprise, il vous faut l'abonnement ; s'il ne dépend que du cœur, il fonctionne sur Community. Plus de détails dans le guide des licences.

Sans la clé license dans le manifeste, Odoo charge le module comme LGPL-3 avec un avertissement dans le log, et l'App Store le traite comme « Other proprietary ». Même module, deux réponses : c'est la première chose à corriger.

Avant d'acheter : cinq vérifications

  • Le manifeste. Regardez license et depends dans __manifest__.py. Un module OPL-1 qui dépend de l'OCA mérite une question à l'auteur.
  • La version. Achetez celle de votre Odoo et, si vous allez migrer, renseignez-vous sur la suivante.
  • L'hébergement. Odoo.sh ou serveur propre, oui ; Odoo Online, non.
  • Le dépôt. Si le module va dans Git, privé.
  • Le titulaire. Si c'est votre partner qui l'installe, que l'achat soit fait au nom de votre entreprise.

Quand vous n'avez pas besoin d'un module OPL-1

Si l'OCA a un module maintenu pour votre version qui fait ce dont vous avez besoin, commencez par là ; dans module natif ou de l'OCA, nous expliquons comment décider. Un module payant a du sens quand il n'existe pas d'alternative libre mature ou que vous préférez que la maintenance entre les versions soit assurée par celui qui l'a écrit. Nos modules payants sont sous OPL-1 : celui de VeriFactu, par exemple, fonctionne sur Odoo 17, 18 et 19, et coûte 49 € en paiement unique sur l'App Store d'Odoo, code source inclus. Et si ce dont vous avez besoin n'existe pas, ce n'est plus une question de licences : c'est du développement sur mesure.

Questions fréquentes

Puis-je utiliser un module OPL-1 sur plusieurs bases de données ?

Le texte de l'OPL-1 ne le dit pas : c'est celui qui vend qui le fixe. Pour nos modules, une instance de production et jusqu'à deux instances de test de la même entreprise, comme le précise l'EULA. Ce qu'aucune condition ne permet, c'est d'emmener le même achat dans l'Odoo d'une autre entreprise : c'est distribuer.

Puis-je modifier un module OPL-1 ?

Oui. Le texte permet expressément de le modifier et de l'exécuter modifié. Ce que vous ne pouvez pas faire, c'est publier cette version ni la remettre à des tiers. Si la modification peut servir à d'autres, demandez-la à l'auteur : vous évitez de maintenir une copie à vous à chaque mise à jour.

L'OPL-1 est-elle la même licence que celle d'Odoo Enterprise ?

Non. Les modules d'Odoo Enterprise utilisent l'OEEL-1, qui exige un abonnement Enterprise valide. L'OPL-1 est destinée aux modules tiers et exige seulement d'avoir acheté le module ; s'il ne dépend que du cœur, il fonctionne aussi sur Community.

Liens utiles chez FlexigoTech

Guide des licences d'OdooOPL-1, AGPL-3, LGPL-3 et Enterprise, avec tableau comparatifEULA des modules FlexigoTechInstances, support et restrictions de nos modules OPL-1Publier un module sur l'App Store d'OdooLa licence vue du côté de celui qui vend

Des doutes sur la licence d'un module avant de l'installer ?

Envoyez-nous le nom du module ou son manifeste et la version de votre Odoo. Nous vous disons quelle licence il a vraiment, de quoi il dépend et s'il entre en conflit avec ce que vous avez déjà installé. Si la réponse est qu'un module de l'OCA vous suffit, nous vous le disons aussi. Écrivez à comercial@flexigobe.com ou planifiez un appel.

Parler à un ingénieur