O código-fonte liberado sob a GPL deve ser legível por humanos?


Respostas:


37

A GPL exige que seja a versão preferida para edição. Se você normalmente escreve um código ofuscado e faz alterações diretamente nele, essa é a fonte da GPL. Se você trabalha em uma versão legível e a executa em qualquer tipo de ofuscador, a versão legível é o que a GPL considera a fonte.

"Legibilidade" é subjetivo e não definido. É legal liberar código muito ruim e difícil de entender sob a GPL. Não é legal usar a versão em que você faz alterações, remover o espaço em branco ou torná-la menos legível e chamar isso de fonte na GPL.


1
muito interessante obrigado. Existe uma parte específica da licença que afirma isso?
Armand

12
GPLv2, Termos e Condições, da cláusula 3: "O código fonte de uma obra significa a forma preferida da obra para fazer modificações nela.".
David Thornley 28/03

4
Esta restrição se aplica apenas aos licenciados. Para seu próprio código (nenhum código GPL externo inserido), você pode ofuscar o quanto quiser e ainda colocar o adesivo GPL (para conceder os direitos a outras pessoas). nVidia fez isso com o código do driver de volta ao dia (1998 ou mais)
Patrick Georgi

2
Dito isso, não faz sentido "colocar um adesivo da GPL" em um trabalho em que você não está fornecendo código-fonte utilizável, como no exemplo da nVidia. Você também pode ter usado uma licença proprietária. Claramente, a nVidia queria ser vista como compartilhando seu código sem realmente compartilhar seu código.
thomasrutter

1
Só por curiosidade. E se você trabalha em um editor proprietário que salva a fonte de forma criptografada? Teoricamente, você tem o código na maneira como trabalha com ele, no entanto, ninguém mais poderia trabalhar com ele, porque é uma ferramenta proprietária a quem não tem acesso.
Aidiakapi 27/07/2015

6

Tomando a GPL v3, na seção 1 você tem:

A “Fonte Correspondente” para um trabalho no formato de código de objeto significa todo o código-fonte necessário para gerar, instalar e (para um trabalho executável) executar o código de objeto e modificar o trabalho, incluindo scripts para controlar essas atividades.

Se os comentários e o espaço em branco fossem removidos, assim como os nomes das funções e variáveis ​​alterados, você não conseguiria modificar razoavelmente o trabalho.

Além do que, além do mais:

A fonte correspondente para um trabalho no formato de código-fonte é o mesmo trabalho.

Esse mesmo trabalho, não um trabalho alterado.

Então, para esclarecer meu ponto anterior, o código fonte deve ser inalterado, estou assumindo que a escrita humana == legível por humanos. Mas sim, você poderia escrever diretamente no que poderia ser considerado não legível por humanos.


4

A pergunta não inclui algumas informações críticas. Se você é o único autor, poderá liberar seu próprio código sob a licença que desejar (incluindo a GPL) sem necessariamente seguir todas as suas regras. Assim, você pode enviar o código em um formulário que não seja preferido para editá-lo e não estar violando nenhuma lei de direitos autorais. Se alguém pode estender seu código sob o espírito de estar sob uma licença de Software Livre é questionável, é provável que poucos o tentem.

No entanto, na maioria das vezes, você não será o único autor de uma obra. Você aproveitará o código existente, criando um trabalho derivado. Esse trabalho deve seguir as regras combinadas de sua linhagem ou você não terá permissão para distribuí-lo sem violar os direitos autorais.

Para deixar isso mais claro, eis alguns exemplos (IANAL):

  • Se você usar uma biblioteca GPL em seu código, não poderá enviar seu próprio código-fonte apenas na forma ofuscada, a menos que (como David Thornley escreve), esse seja realmente o formato em que você o escreve e edita.
  • Se você usar uma biblioteca LGPL em seu código, poderá enviar seu próprio código-fonte apenas na forma ofuscada. Isso ocorre porque a LGPL exige apenas que você possa usar o trabalho que usa a biblioteca com uma versão mais recente da biblioteca.
  • Se você estender uma biblioteca LGPL, isso seria como o caso GPL, e você teria que enviar código não ofuscado (novamente, a menos que seja assim que você realmente o edita).

1
você deve seguir todas as regras de uma licença, independentemente de quem possui os direitos autorais. Se você decidir usar sua biblioteca JS em seu próprio site e também liberá-la na GPL, faça isso separadamente. Esta pergunta não é sobre a LGPL, embora se restrições semelhantes se apliquem à LGPL, pois a GPL considera a legibilidade do código, isso seria útil mencionar aqui.
Armand

@Alison: As condições de licença aplicam-se àquele que usa (e redistribui, neste caso) as obras, não àquele que originalmente o criou e licenciou para você.
Paŭlo Ebermann 28/03

1
@Alison discordou. Se você é o único proprietário da obra, pode realocá-la novamente. Portanto, você pode distribuí-lo sob os termos de (licença mágica não especificada aqui) e permitir que outras pessoas a redistribam de acordo com os termos da GPL - a GPL apenas adiciona direitos para permitir que outras pessoas redistribam obras derivadas da sua. É claro que este não é um cenário provável, como se você não acreditasse na GPL e fosse o único proprietário, não a usaria.
Michael Urman 29/03

Você não precisa enviar seu próprio código-fonte que usa uma biblioteca LGPL, desde que o idioma permita binários. Você deve enviar o que permitiria ao usuário alterar a peça LGPL e reconstruir o aplicativo (embora a GPLv2 permita impedir o usuário de instalar a versão alterada). Se você enviar a fonte, por necessidade ou conveniência, ela poderá ser ofuscada.
David Thornley

Bom ponto. Vou editar minha postagem para não dizer mais que a LGPL não exige requisitos para o trabalho que a utiliza.
Michael Urman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.