Introdução sobre o licenciamento de software aberto

Hash Tech Team
Hash Tech
Published in
4 min readJun 10, 2021

Desenvolver software é algo que engloba mais do que simplesmente escrever o código. É um conjunto de atos, processos, convenções e regras que ditam a forma como o código é estruturado e como ele é lido e interpretado por máquinas e por terceiros. Em outras palavras, “codar” possui uma estrutura parecida com a linguagem, em que há uma mensagem (“código”) criada e/ou transmitida por um emissor (“desenvolvedor” ou “empresa”) e destinada a um receptor (“máquinas” ou “terceiros”).

O papel de receptor é desempenhado por diversas entidades ao longo da vida do software: pode ser a máquina que recebe suas instruções, as pessoas que usam o produto encomendado, ou até mesmo outro software que o utilize.

O emissor, por outro lado, será sempre a pessoa que cria ou transmite a mensagem com as características necessárias para ser reconhecida e interpretada pelo receptor.

Para compreender a mensagem é necessário diferenciar seu conteúdo do envelope, ou seja, diferenciar o código em si da série de requisitos técnicos e legais que devem ser respeitados para que a mensagem seja transmitida de forma efetiva.

Em relação aos requisitos legais, foco deste artigo, a principal exigência para a disponibilização da mensagem é o licenciamento. O licenciamento ocorre quando o emissor disponibiliza a mensagem para o receptor e declara uma série de direitos e deveres para as partes.

O licenciamento pode ser proprietário ou aberto, sendo a principal diferença entre estes a possibilidade do receptor retransmitir a mensagem, se tornando efetivamente um novo emissor.

Caso o emissor não declare um tipo de licença, será aplicado o licenciamento proprietário que é o “padrão” da legislação e implica em uma série de restrições aos receptores, incluindo, geralmente, a proibição à retransmissão. O licenciamento aberto, em contraste, foi criado como resposta às limitações que o modelo proprietário impunha a uma comunidade de livre trânsito de ideias e permite que o software seja recepcionado e retransmitido com menos restrições.

As licenças abertas são diferentes entre si, sendo que os direitos e obrigações dos receptores variam conforme a licença empregada. As principais restrições impostas aos receptores através de licenças abertas são:

i) atribuição (dever de atribuir a autoria do software ao emissor)

ii) modificação (o direito do receptor alterar o software)

iii) copyleft (obrigação do receptor retransmitir o software, ainda que alterado ou derivado, com as mesmas garantias e direitos concedidos originalmente).

Para facilitar a compreensão das restrições de cada licença aberta, resumimos abaixo as características das cinco principais licenças do mercado:

MIT: MIT é uma licença permissiva, ou seja, há poucas restrições para a retransmissão do software licenciado através dela. A única limitação imposta ao receptor é a obrigação deste “atribuir a autoria” ao emissor quando da retransmissão do código.

Apache: Assim como a licença MIT, a Apache é uma licença permissiva. A principal diferença entre ambas é que esta, além de obrigar o receptor a atribuir a autoria ao emissor, também o obriga a tornar pública quaisquer mudanças que realizar no software original antes de retransmiti-lo.

Mozilla (MPL 2.0): a licença Mozilla possui restrições “copyleft”, ou seja, o receptor, quando retransmite o software, é obrigado a manter as características e direitos atribuídos na transmissão original. Ao contrário de outras licenças “copyleft”, a licença Mozilla permite que o código distribuído sob ela possa ser incorporado a softwares derivados transmitidos por meio de licenças proprietárias, desde que a parte originalmente transmitida sob a licença Mozilla seja segregada em arquivos distintos que permitam a edição pelo novo receptor e o código-fonte seja disponibilizado.

GPLv3: A GPLv3 é caracterizada por seu forte aspecto copyleft, pois o receptor só pode retransmitir o software se garantir os mesmos direitos e obrigações ao novo receptor, o que é obtido através do uso da mesma licença ou de licenças compatíveis. Com a licença GPLv3, cada retransmissão aumenta a quantidade de mensagens submetidas a uma licença copyleft, por isso é conhecida por “licença viral”.

LGPLv3: A licença LGPLv3 é uma licença copyleft, o que significa que o software transmitido sob ela só pode ser retransmitido pelo receptor sob a mesma licença ou licenças compatíveis. Contudo, ao contrário da licença GPL, caso o código transmitido sob a LGPL seja utilizado como biblioteca por meio de link dinâmico, o software receptor não é obrigado a ser licenciado sob a licença LGPL v3, mas o emissor deve fornecer meios para que o conteúdo daquele possa ser acessado e alterado pelo receptor.

A escolha de uma licença aberta depende dos objetivos pretendidos pelo emissor. Ao utilizar licenças permissivas, como a MIT e a Apache, o emissor garante mais liberdades aos receptores, que podem retransmitir o software utilizado qualquer licença, aberta ou proprietária, por meio de um processo chamado “relicenciamento”.

Ao escolher licenças copyleft, por outro lado, o emissor restringe as opções dos receptores, que só poderão retransmitir o código usando a mesma licença ou licenças compatíveis. Neste caso, o emissor possui a garantia que o software e suas derivações permanecerão abertos a cada retransmissão.

Não há licença correta a ser utilizada, mas sim cenários em que as vantagens e desvantagens são mais proeminentes. A escolha de qual licença utilizar cabe exclusivamente ao emissor, que julga os objetivos da sua mensagem de forma soberana.

Na Hash gostamos de discutir sobre esse tipo de assunto que permeia diversas áreas, escrevemos esse resumo após nosso time de Legal pesquisar sobre esse assunto ao conversar com o time de Tech. Caso você se interesse em participar das discussões conosco temos diversas vagas abertas: https://jobs.lever.co/hash

Autoria

Matheus Cangussu

Revisão / Tradução

Matheus Cangussu, Guilherme Not, Marco Worms

--

--