Saltar para o conteúdo principal
Licenças · OPL-1, LGPL e AGPL

O que significa a licença OPL-1 do Odoo quando compra um módulo: o que permite, o que proíbe e como convive com LGPL e AGPL

A OPL-1 são cinco parágrafos escritos pela Odoo S.A. Deixam-no usar, ler e modificar o módulo que comprou, e proíbem-no de o publicar ou de o passar a outra empresa. Igualmente importante é o que não dizem: versões, bases de dados e dependências com a OCA.

Catálogo de módulos da FlexigoTech para Odoo com as versões compatíveis, o preço de pagamento único e a ligação para a Odoo App Store

A OPL-1 aparece na ficha de muitos módulos pagos da App Store do Odoo, e quase ninguém lê o que está por trás: cinco parágrafos curtos que a Odoo S.A. publica na sua documentação. Aqui lemo-los do lado de quem paga: o que permitem, o que proíbem, o que calam e como convivem com LGPL e AGPL. É a leitura de engenheiros que publicam módulos, não aconselhamento jurídico.

O que diz a OPL-1, parágrafo a parágrafo

A Odoo Proprietary License v1.0 diz cinco coisas. Só se pode usar o módulo (executá-lo, modificá-lo e executá-lo modificado) com uma licença comprada aos seus autores, «normalmente através do Odoo Apps», ou com um acordo escrito. Pode escrever módulos que dependam dele sem copiar o seu código. Está proibido publicar, distribuir, sublicenciar ou vender cópias, modificadas ou não. O aviso de copyright acompanha todas as cópias. E é entregue «tal como está», sem garantia. Na prática:

Quer…Pode-se?O pormenor
Usá-lo no Odoo da sua empresaSimCom licença comprada ou acordo escrito com o autor.
Modificá-lo para os seus processosSimA sua versão modificada continua a ser OPL-1.
Ler e auditar o códigoSimChega legível: a App Store retira o código ofuscado ou cifrado.
Escrever um módulo que dependa deleSimSem copiar o seu código e com licença compatível.
Carregá-lo num GitHub públicoNãoÉ publicar. No Odoo.sh, com repositório privado.
Instalar uma compra em vários clientesNãoÉ distribuir. Cada cliente compra a sua.
Revendê-lo ou incluí-lo no seu produtoNãoNem grátis nem modificado.

O que a OPL-1 não diz, e onde está a resposta

A licença não fala de utilizadores, bases de dados, atualizações nem versões. Isso é fixado por quem vende. Na App Store, as suas condições de venda: desde o Odoo 13 cada versão vende-se à parte, pelo que comprá-lo para o Odoo 18 não lhe dá o do Odoo 19; os módulos de terceiros não se instalam no Odoo Online; e há dois meses para reclamar se não instalar na versão anunciada ou se lhe faltar uma funcionalidade que a ficha promete. Comprar a versão errada não dá direito a reembolso. Se comprar diretamente ao autor, vale o acordo dele: o nosso fixa uma instância de produção e até duas de testes, com doze meses de suporte.

Porque é que os módulos pagos levam OPL-1

Porque com uma licença livre a venda por cópia não se sustenta. Pode-se vender um módulo LGPL-3 ou AGPL-3, mas o comprador recebe o direito de o redistribuir e poderia publicá-lo gratuitamente, legalmente. A OPL-1 é a licença que a Odoo S.A. escreveu para essa lacuna, e a App Store reconhece-a com o valor OPL-1 do manifesto. O que surpreende: a proteção é contratual, não técnica. O módulo chega-lhe em Python legível, como um da OCA.

OPL-1, LGPL-3 e AGPL-3 na mesma base de dados

O núcleo do Odoo Community é LGPL-3, que permite que outros módulos o usem sem herdar as suas condições; por isso, por cima cabem módulos OPL-1. Os da OCA costumam ser AGPL-3. Tê-los instalados juntos para uso próprio não cria conflito: a AGPL obriga ao distribuir ou ao oferecer por rede uma versão modificada, por exemplo num portal de clientes. O choque surge quando um módulo depende de outro. Assim o resume a App Store:

Se o seu módulo é…Pode depender de…Não pode depender de…
AGPL-3AGPL-3, GPL-3 e LGPL-3OPL-1, OEEL-1 (Enterprise), outras OSI nem proprietárias
LGPL-3LGPL-3, OPL-1, OEEL-1, outras OSI e proprietáriasAGPL-3 nem GPL-3
OPL-1LGPL-3, OPL-1, OEEL-1, outras OSI e proprietáriasAGPL-3 nem GPL-3

Traduzido: um módulo OPL-1 não pode depender de um AGPL-3 da OCA, nem ao contrário, e uma peça que importe os dois não cabe em nenhuma licença. Se o módulo OPL-1 depende do Enterprise, precisa da subscrição; se só depende do núcleo, funciona no Community. Mais pormenor no guia de licenças.

Sem a chave license no manifesto, o Odoo carrega o módulo como LGPL-3 com um aviso no log, e a App Store trata-o como «Other proprietary». Mesmo módulo, duas respostas: é a primeira coisa a corrigir.

Antes de comprar: cinco verificações

  • O manifesto. Veja license e depends em __manifest__.py. Um módulo OPL-1 que depende da OCA merece uma pergunta ao autor.
  • A versão. Compre a do seu Odoo e, se vai migrar, pergunte pela seguinte.
  • O alojamento. Odoo.sh ou servidor próprio, sim; Odoo Online, não.
  • O repositório. Se o módulo vai para o Git, privado.
  • O titular. Se for o seu partner a instalá-lo, que a compra fique em nome da sua empresa.

Quando não precisa de um módulo OPL-1

Se a OCA tem um módulo mantido para a sua versão que faz o que precisa, comece por aí; em módulo nativo ou da OCA explicamos como decidir. Um módulo pago faz sentido quando não há alternativa livre madura ou prefere que a manutenção entre versões fique a cargo de quem o escreveu. Os nossos módulos pagos levam OPL-1: o de VeriFactu, por exemplo, funciona no Odoo 17, 18 e 19, e custa 49 € de pagamento único na App Store do Odoo, com o código-fonte incluído. E se o que precisa não existe, já não é questão de licenças: é desenvolvimento à medida.

Perguntas frequentes

Posso usar um módulo OPL-1 em várias bases de dados?

O texto da OPL-1 não o diz: é fixado por quem vende. Nos nossos módulos, uma instância de produção e até duas de testes da mesma empresa, tal como consta do EULA. O que nenhuma condição permite é levar a mesma compra para o Odoo de outra empresa: isso é distribuir.

Posso modificar um módulo OPL-1?

Sim. O texto permite expressamente modificá-lo e executá-lo modificado. O que não pode é publicar essa versão nem entregá-la a terceiros. Se a alteração servir a mais gente, peça-a ao autor: poupa-se a manter uma cópia própria em cada atualização.

A OPL-1 é a mesma licença que a do Odoo Enterprise?

Não. Os módulos do Odoo Enterprise usam a OEEL-1, que exige uma subscrição Enterprise válida. A OPL-1 é para módulos de terceiros e só exige ter comprado o módulo; se depender apenas do núcleo, funciona também no Community.

Ligações úteis dentro da FlexigoTech

Guia de licenças do OdooOPL-1, AGPL-3, LGPL-3 e Enterprise, com tabela comparativaEULA dos módulos FlexigoTechInstâncias, suporte e restrições dos nossos módulos OPL-1Publicar um módulo na Odoo App StoreA licença vista do lado de quem vende

Dúvidas com a licença de um módulo antes de o instalar?

Envie-nos o nome do módulo ou o seu manifesto e a versão do seu Odoo. Dizemos-lhe que licença tem de facto, de que depende e se choca com o que já tem instalado. Se a resposta for que lhe basta um da OCA, também lho dizemos. Escreva para comercial@flexigobe.com ou agende uma chamada.

Falar com um engenheiro