Perguntas frequentes sobre as licenças GNU

Conteúdo

Perguntas básicas sobre o Projeto GNU, a Free Software Foundation e suas licenças

Compreensão geral das licenças GNU

Usando licenças GNU para seus programas

Distribuição de programas lançados sob as licenças GNU

Usando programas lançados sob as licenças GNU quando escrevem outros programas

Combinando trabalho com código lançado sob as licenças GNU

Questões sobre violação das licenças GNU


O que significa “GPL”? (#WhatDoesGPLStandFor)

“GPL” significa “General Public License” (Licença Pública Geral). A mais difundida dessas licenças é a Licença Pública Geral GNU, ou GNU GPL para encurtar. Isso pode ser encurtado mais ainda para “GPL”, quando estiver entendido que a GNU GPL é a que se pretende.

Software livre significa usar a GPL? (#DoesFreeSoftwareMeanUsingTheGPL)

De forma alguma – há muitas outras licenças de software livre. Nós temos uma lista incompleta. Qualquer licença que garanta ao usuário algumas liberdades específicas é uma licença de software livre.

Por que eu devo usar a GNU GPL em vez de outras licenças de software livre? (#WhyUseGPL)

O uso da GNU GPL vai exigir que todas as versões lançadas sejam software livre. Isso significa que você pode evitar o risco de ter que competir com uma versão modificada proprietária de seu próprio trabalho. Contudo, em algumas situações especiais pode ser melhor que usar uma licença mais permissiva.

Todo software GNU usa a GNU GPL como sua licença? (#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense)

A maior parte dos pacotes de software GNU usam a GNU GPL, mas há alguns poucos programas GNU (e partes de programas) que usam as licenças mais flexíveis, como a GPL Menor (LGPL). Quando fazemos isso, é por uma questão de estratégia.

O uso da GPL para um programa faz dele um software GNU? (#DoesUsingTheGPLForAProgramMakeItGNUSoftware)

Qualquer pessoa pode lançar um programa sob a GNU GPL, mas isso não faz dele um pacote GNU.

Fazer do programa um software GNU significa contribuir explicitamente para o Projeto GNU. Isso acontece quando os desenvolvedores do programa e o Projeto GNU concordam em fazê-lo. Se você estiver interessado em contribuir um programa para o Projeto GNU, por favor escreva para <maintainers@gnu.org>.

O que devo fazer se eu descobrir uma possível violação da GPL? (#ReportingViolation)

Você deveria relatar. Primeiro, verifique os fatos como puder. Então, pergunte ao editor ou detentor dos direitos autorais do programa específico sob GPL. Se aquele é a Free Software Foundation, escreva para <license-violation@gnu.org>. Por outro lado, o mantenedor do programa pode ser o detentor dos direitos autorais, ou senão pergunte como contatar o responsável, então reporte para o mantenedor.

Por que a GPL permite que usuários publiquem suas versões modificadas? (#WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions)

Um aspecto crucial do software livre é que usuários são livres para cooperar. É absolutamente essencial permitir que usuários que queiram se ajudar mutuamente compartilhem suas correções de bugs e melhoramentos com outros usuários.

Alguns propuseram alternativas para a GPL que exigem que versões modificadas passem pelo autor original. Durante o tempo em que o autor original seja capaz de dar conta das necessidades de manutenção, isso pode funcionar bem na prática, mas se o autor parar (mais ou menos) para fazer alguma outra coisa ou não atender à todas as necessidades dos usuários, esse sistema cai por terra. Além dos problemas práticos, esse sistema não permite que usuários colaborem mutuamente.

Algumas vezes o controle sobre versões modificadas é proposto como uma forma de evitar confusão entre várias versões feitas por usuários. Em nossa experiência, essa confusão não é um grande problema. Muitas versões do EMACS apareceram fora do Projeto GNU, mas os usuários podem diferenciá-las. A GPL requer que o autor ou autora de uma versão ponha o seu nome nela, para distingui-la de outras versões e proteger a reputação de outros mantenedores.

A GPL exige que o código-fonte de versões modificadas seja disponibilizado para o público? (#GPLRequireSourcePostedPublic)

A GPL não requer que você lance sua versão modificada, ou qualquer outra parte dela. Você é livre para fazer as suas modificações e utilizá-las privativamente, sem nunca lançá-las. Isso se aplica a organizações (incluindo empresas), também; um organização pode fazer uma versão modificada e usá-la internamente sem chegar a lançá-la fora da organização.

Mas se você lança a versão modificada para o público de qualquer forma, a GPL requer que você torne o código-fonte disponível para os usuários do programa, sob os termos da GPL.

Portanto, a GPL dá permissão para lançar o programa modificado de algumas formas, mas não de outras formas; mas a decisão para lançar ou não o programa depende de você.

Posso ter um programa sob a GPL e um programa não livre no mesmo computador? (#GPLAndNonfreeOnSameMachine)

Sim.

Se eu sei que alguém tem uma cópia de um programa coberto pela GPL, posso exigir que eles me forneçam uma cópia? (#CanIDemandACopy)

Não. A GPL dá uma permissão pessoal para fazer e redistribuir cópias do programa se e quando a pessoa escolhida fazer. Aquela pessoa também tem o direito de escolher não redistribuir o programa.

O que significa a “written offer valid for any third party” (“oferta escrita válida para terceiros”) na GPLv2? Ela significa que qualquer pessoa no mundo pode obter o fonte de um programa sob a GPL, em quaisquer condições? (#WhatDoesWrittenOfferValid)

Se você escolher fornecer o fonte através de uma oferta do escritor, então alguém que requisitar o fonte de você tem o direito de recebê-lo.

Se você distribuir binários comercialmente, sem estarem acompanhados do código-fonte, a GPL diz que você deve acrescentar uma oferta por escrito de distribuição posterior do código-fonte. Quando os usuários redistribuírem não comercialmente os binários que receberam de você, eles devem passar adiante uma cópia dessa oferta por escrito. Isso significa que pessoas que não obtiveram os binários diretamente de você ainda podem receber cópias do código-fonte, junto com a oferta por escrito.

A razão pela qual nós exigimos que essa oferta seja válida para quaisquer terceiros é para que pessoas que tenham recebido os binários indiretamente dessa forma possam obter o código-fonte de você.

A GPLv2 diz que versões modificadas, se lançadas, devem ser “licenciadas … para todos os terceiros.” Quem são esses terceiros? (#TheGPLSaysModifiedVersions)

A seção 2 diz que versões modificadas que você distribui devem ser licenciadas para todos os terceiros sob a GPL. “Todos os terceiros” significa absolutamente todo mundo – mas isso não requer que você faça alguma coisa fisicamente por eles. Apenas significa que eles tem uma licença de você, sob a GPL, para a sua versão.

Sou obrigado a reivindicar o direito autoral sobre minhas modificações para um programa coberto pela GPL? (#RequiredToClaimCopyright)

Você não é obrigado a reivindicar um direito autoral sobre suas mudanças. Na maioria dos países, contudo, que acontece automaticamente por padrão, você precisa solicitar suas mudanças explicitamente no domínio público se você não quer então estar com os direitos do autor.

Você reivindicando um direito autoral sobre suas mudanças ou não, de qualquer forma você deve lançar a versão modificada, como um todo, sob a GPL (se você lançar sua versão modificada).

O que a GPL diz sobre a tradução de algum código para uma linguagem de programação diferente? (#TranslateCode)

Sobre a lei de direitos autorais, tradução de um trabalho é considerado um tipo de modificação. Contudo, o que a GPL diz sobre aplicar versões modificadas também para versões traduzidas. A tradução é coberta para coberta pelo direito autoral do programa original.

Se o programa original tiver uma licença livre, essa licença dará permissão para traduzi-lo. Como você pode usar e licenciar o programa traduzido é determinado por essa licença. Se o programa original é licenciado sob certas versões da GNU GPL, o programa traduzido deve ser coberto pelas mesmas versões da GNU GPL.

Se um programa combina código em domínio público com código abrangido pela GPL, posso pegar a parte em domínio público e usá-la como código em domínio público? (#CombinePublicDomainWithGPL)

Você pode fazer isso, se você pode descobrir que parte é domínio público em parte e separá-la do resto. Se o código foi colocado em domínio público pelos desenvolvedores, ele é de domínio público não importando onde ele esteve.

A GPL permite que eu venda cópias do programa por dinheiro? (#DoesTheGPLAllowMoney)

Sim, a GPL permite qualquer um fazer isso. O direito de vender cópias é parte da definição de software livre. Exceto em uma situação especial, não há limite sobre qual o preço que você pode carregar. (A única exceção é a oferta obrigatória escrita para fornecer o código-fonte que deve acompanhar o lançamento binário somente.)

A GPL permite que eu cobre uma taxa pelo download do programa do meu site de distribuição? (DoesTheGPLAllowDownloadFee)

Sim. Você pode cobrar qualquer taxa que desejar por distribuir uma cópia do programa. Se você distribuir binários por download, você deve fornecer “acesso equivalente” para baixar o fonte – todavia, a taxa de download do fonte não deve ser maior que a taxa do download do binário.

A GPL me permite exigir que qualquer um que receba uma cópia do software me pague uma taxa e/ou me notifique? (#DoesTheGPLAllowRequireFee)

Não. Na verdade, uma exigência dessas faria o programa ser não livre. Se as pessoas tiverem que pagar quando elas obtém uma cópia do programa, ou se elas têm que notificar qualquer pessoa em particular, então o programa é não livre. Veja a definição de software livre.

A GPL é uma licença de software livre e, portanto, ela permite que as pessoas usem e até redistribuam o software sem ter que pagar a ninguém uma taxa por fazer isso.

Você pode cobrar uma taxa das pessoas para obter uma cópia de você. Você não pode requerer que as pessoas paguem a você quando elas obtém uma cópia de alguém.

Se eu distribuir um software sob a GPL por uma taxa, preciso também disponibilizá-lo para o público gratuitamente? (#DoesTheGPLRequireAvailabilityToPublic)

Não. Contudo, se alguém pagar pelas taxas e obter uma cópia, a GPL dar então a liberdade para lançá-la para o público, com ou sem uma taxa. Por exemplo, alguém deveria pagar uma taxa, e então coloca a cópia dela em seu web site para o público em geral.

A GPL me permite distribuir cópias sob um acordo de não divulgação? (#DoesTheGPLAllowNDA)

Não. A GPL diz que alguém que recebe uma cópia de você tem o direito de redistribuir cópias, modificadas ou não. Você não tem permissão para distribuir o trabalho sobre qualquer outra restrição básica.

Se alguém pedir que você assine um NDA para receber um software sob GPL com diretos autorais para a FSF, por favor informe-nos imediatamente escrevendo para license-violation@fsf.org.

Se a violação envolver um código coberto pela GPL que tem algum outro detentor de direito autoral, por favor informe àquele detentor, como você faria para qualquer outro tipo de violação da GPL.

A GPL me permite distribuir uma versão modificada ou beta sob um acordo de não divulgação? (#DoesTheGPLAllowModNDA)

Não. A GPL diz que suas versões modificadas deve ter todas as liberdades iniciadas na GPL. Assim, alguém que receber uma cópia de sua versão de você tem o direito de redistribuir cópias (modificada ou não) de sua versão. Você não deve distribuir qualquer versão do trabalho com nenhuma restrição.

A GPL me permite desenvolver uma versão modificada sob um acordo de não divulgação? (#DevelopChangesUnderNDA)

Sim. Por exemplo, você pode aceitar um contrato para desenvolver mudanças e aceitar não lançar suas mudanças até o cliente concordar. Isso é permitido porque nesse caso o código não GPL está sendo distribuído sob uma NDA.

Você pode também lançar suas mudanças para o cliente sob a GPL, mas não aceitar lançar para alguém até que o cliente diga ok. Nesse caso, também, o código não GPL está sendo distribuído sob uma NDA, ou sob qualquer restrição adicional.

A GPL deveria dar ao cliente o direito de redistribuir sua versão. Nesse cenário, o cliente provavelmente vai escolher não exercer seu direito, mas tem o direito.

Eu quero receber crédito pelo meu trabalho. Eu quero que as pessoas saibam o que eu escrevi. Eu ainda posso ter crédito se eu usar a GPL? (#IWantCredit)

Certamente você tem os créditos pelo seu trabalho. Parte do processo de lançar um programa sob a GPL é escrever um aviso de direitos autorais em seu nome (supondo que você seja o detentor do direito autoral). A GPL requer que todas as cópias tenham um aviso de direitos autorais apropriado.

A GPL me permite adicionar termos que exigem citação ou reconhecimento em trabalhos de pesquisa que usam o software sob a GPL ou sua saída? (#RequireCitation)

Não, isso não é permitido sob os termos da GPL. Enquanto nós reconhecemos que uma citação adequada é uma parte importante das publicações acadêmicas, citação não pode ser adicionada como um requisito adicional para a GPL. Requerer citação em pesquisas que fazem uso de software GPL vai além do que seria de um requisito adicional aceitável sob a seção 7(b) da GPLv3 e, portanto, seria considerado uma restrição adicional sob a Seção 7 da GPL. E a lei de direitos autorais não permite você coloque tal requisito sobre a saída de um software, independente se ele é lançado sob os termos da GPL ou alguma outra licença.

Por que a GPL exige que se inclua uma cópia da GPL com todas as cópias do programa? (#WhyMustIInclude)

A inclusão de uma cópia da licença com o trabalho é vital para que todos que obtenham uma cópia do programa possam saber quais são seus direitos.

Poderia ser tentador incluir uma URL que aponte para a licença, no lugar da licença em si. Mas você não pode ter certeza de que a URL ainda será válida em cinco ou dez anos. Vinte anos no futuro, URLs como nós as conhecemos hoje podem nem sequer existir mais.

A única forma de ter certeza de as pessoas que têm cópias do programa continuarão a poder ver a licença, a despeito de todas as mudanças que possam ocorrer na rede, é incluir uma cópia da licença com o programa.

É suficiente apenas colocar uma cópia da GNU GPL em meu repositório? (#LicenseCopyOnly)

Apenas colocar uma cópia da GNU GPL em um arquivo em seu repositório não explicita o estado que o código no mesmo diretório pode ser usado sob a GNU GPL. Sem tal declaração, não fica totalmente claro que a permissão na licença realmente se aplica para qualquer arquivo fonte em particular. A declaração explícita diz para eliminar todas as dúvidas.

Um arquivo contendo apenas uma licença, sem uma declaração segura que outros arquivos são cobertos por aquela licença, se assemelha a um arquivo contendo apenas um sub-rotina que nunca chamada. A semelhança não é perfeita: advogados e tribunais devem aplicar o senso comum e concluir que você deve ter uma cópia da GNU GPL lá porque você procurava a licença do código de qualquer forma. Ou eles não poderiam. Porque deixar incertezas?

Essa declaração deve estar em cada arquivo fonte. Uma declaração clara no arquivo README do programa é legalmente suficiente desde que acompanhe o código, mas é simples para eles se separarem. Por que correr um risco de incertezas sobre a licença do seu código?

Isso tem nada a ver com a GNU GPL especificamente. Isso é verdade para qualquer licença livre.

Por que eu devo colocar um aviso de licença em cada arquivo fonte? (#NoticeInSourceFile)

Você deveria colocar uma aviso no início de cada arquivo fonte, iniciando o que a licença aborda, para evitar o risco de obter o código desconectado da licença. Se seu README diz que o arquivo fonte está sob a GNU GPL, o que acontece se alguém copiar aquele arquivo para outro programa? Aquele outro contexto não deve mostrar qual é a licença do arquivo. Pode parecer ter outra licença ou não ter licença alguma (o que o tornaria código não livre).

A adição de um aviso de direitos autorais e uma licença no início de cada arquivo fonte é fácil e evita uma improvável confusão.

Isso tem nada a ver com a GNU GPL especificamente. Isso é verdade para qualquer licença livre.

E se o programa não for muito longo? (#WhatIfWorkIsShort)

Se um pacote de software completo contém muito pouco código – menos de 300 linhas é o marca que usamos – você também pode usar uma licença permissiva leniente para ele, em vez de uma licença protegia por copyleft, como a GNU GPL. (A menos, isto é, que o código seja especialmente importante.) Nós recomendamos a Licença Apache 2.0 para tais casos.

Posso omitir o preâmbulo da GPL, ou as instruções sobre como usá-la em seus próprios programas, para economizar espaço? (#GPLOmitPreamble)

O preâmbulo e as instruções são partes integrantes da GNU GPL e não podem ser omitidas. Na verdade, a GPL é protegida por direitos autorais, e sua própria licença permite apenas a cópia exata de toda a GPL. (Você pode usar os termos legais para fazer outra licença, mas ela não será a GNU GPL.)

O preâmbulo e as instruções adicionam cerca de 1000 palavras, menos de 1/5 do tamanho total da GPL. Eles não serão uma parte substancial do tamanho do pacote de software, a não ser que o pacote em si seja bem pequeno. Neste caso, você pode usar uma licença simples, toda permissiva, em vez da GNU GPL.

O que significa dizer que duas licenças são “compatíveis”? (#WhatIsCompatible)

Para combinar dois programas (ou partes substanciais dos mesmos), em um trabalho maior, você precisa ter permissão para usar os dois programas dessa forma. Se as licenças de ambos os programas permitir isso, então elas são compatíveis. Se não houver forma de satisfazer as duas licenças ao mesmo tempo, então elas não são compatíveis.

Para algumas licenças, a forma em que a combinação é feita pode afetar o fato de elas serem ou não compatíveis – por exemplo, elas podem permitir vincular dois módulos juntos, mas não permitir fundir seu código em um único módulo.

Se você quer apenas instalar dois programas separados no mesmo sistema, não é necessário ter uma licença compatível porque isso não os juntam em um trabalho maior.

O que significa dizer que uma licença é “compatível com a GPL”? (#WhatDoesCompatMean)

Significa que a outra licença e a GNU GPL são compatíveis; você pode combinar código lançado sob a outra licença com código distribuído sob a GNU GPL em um programa maior.

Todas as versões da GNU GPL permitem tais combinações de forma privada; elas também permitem distribuição de tais combinações, desde que a combinação seja lançada sob a mesma versão da GNU GPL. A outra licença é compatível com a GPL somente se ela permitir isso também.

A GPLv3 é compatível com mais licenças que a GPLv2: permite que você faça combinações com código que tem tipos específicos de requisitos adicionais que não estão na GPLv3. A seção 7 tem mais informações sobre isso, incluindo a lista de requisitos adicionais que são permitidos.

Posso escrever software livre que usa bibliotecas não livres? (#FSWithNFLibs)

Se você fizer isso, seu programa não será plenamente utilizável num ambiente livre. Se o seu programa depende de uma biblioteca não livre para executar uma dada tarefa, ele não pode executar essa tarefa no Mundo Livre. Se ele depende de uma biblioteca não livre para funcionar, ele não pode ser parte de um sistema operacional livre tal como o GNU; está inteiramente fora dos limites do Mundo Livre.

Então, por favor, considere: você pode achar um jeito de executar a tarefa sem usar tal biblioteca? Você pode escrever um substituto para essa biblioteca?

Se o programa já estiver escrito usando a biblioteca não livre, talvez seja tarde demais para mudar a decisão. Você também pode lançar o programa como ele está, em vez de não lançá-lo. Mas, por favor, mencione no README que a necessidade da biblioteca não livre é uma desvantagem, e sugira a tarefa de alterar o programa de forma que ele faça o mesmo trabalho sem a biblioteca não livre. Por favor, sugira que quem pensa em fazer um trabalho adicional substancial no programa, primeiro, se livre da dependência da biblioteca não livre.

Note que pode haver questões legais na combinação de certas bibliotecas não livres com software livre coberto pela GPL. Veja a pergunta sobre software coberto pela GPL que usa bibliotecas incompatíveis com GPL para mais informações.

Posso vincular um programa GPL com uma biblioteca de sistema proprietário? (#SystemLibraryException)

Ambas versões da GPL têm uma exceção para o copyleft delas, normalmente chamada de exceção de biblioteca de sistema. Se as bibliotecas incompatíveis com a GPL que você quer usar atendem os critérios de uma biblioteca de sistema, então você não tem que fazer nada em especial para usá-las; o requisito de distribuir o código-fonte de todo o programa não inclui essas bibliotecas, ainda que você distribua um executável vinculado a elas.

O critério para considerar como “biblioteca de sistema” varia entre diferentes versões da GPL. A GPLv3 define explicitamente “System Libraries” (“Bibliotecas de Sistema”) na seção 1, para excluí-las da definição de “Corresponding Source” (“Fonte Correspondente”). A GPLv2 lida com essas questões de forma um pouco diferente, próximo do fim da seção 3.

Que problemas legais ocorrem se eu usar uma biblioteca incompatível com a GPL junto com um software GPL? (#GPLIncompatibleLibs)

Se você quiser que seu programa se vincule a uma biblioteca não coberta pela exceção de biblioteca de sistema, você precisa dar permissão para fazer isso. Segue abaixo dois exemplos de aviso de licença que você pode usar; um para GPLv3 e o outro para GPLv2. Em ambos os casos, você deve colocar esse texto em cada arquivo para o qual você está concedendo essa permissão.

Apenas os detentores de direitos autorais para o programa podem legalmente lançar seu software sob estes termos. Se você escreveu o programa pessoalmente, então, supondo que seu empregador ou sua escola não reivindique os direito autoral, você é o detentor do direito autoral – neste caso, você pode autorizar a exceção. Mas se você quiser usar partes de outros programas cobertos pela GPL, escritos por outras pessoas, no seu código, você não pode autorizar a exceção por eles. Você tem que obter a aprovação dos detentores de direito autoral daqueles programas.

Quando outras pessoas modificam o programa, elas não tem que fazer a mesma exceção para o código delas – é opção delas fazê-lo.

Se as bibliotecas as quais você pretende vincular são não livres, veja também a seção sobre a escrita de Software Livre que usa bibliotecas não livres.

Se você está usando a GPLv3, você pode atingir esse objetivo concedendo uma permissão adicional sob a seção 7. O aviso de licença a seguir vai fazer isso. Você deve substituir todos os textos entre colchetes com o texto que é apropriado para seu programa. Se nem todos puderem distribuir o fonte para as bibliotecas com as quais você pretende vincular, você deve remover o texto entre chaves; do contrário, apenas remover as próprias chaves.

Copyright (C) [anos] [nome do detentor de direito autoral]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses>.

Additional permission under GNU GPL version 3 section 7

If you modify this Program, or any covered work, by linking or combining it with [nome da biblioteca] (or a modified version of that library), containing parts covered by the terms of [nome da licença da biblioteca], the licensors of this Program grant you additional permission to convey the resulting work. {Corresponding Source for a non-source form of such a combination shall include the source code for the parts of [nome da biblioteca] used as well as that of the covered work.}1

Se você está usando a GPLv2, você pode fornecer sua própria exceção para a os termos da licença. O aviso de licença a seguir vai fazer isso. Novamente, você deve substituir todos os textos entre colchetes com o texto que é apropriado para seu programa. Se nem todos puderem distribuir o fonte para as bibliotecas com as quais você pretende vincular, você deve remover o texto entre chaves; do contrário, apenas remover as próprias chaves.

Copyright (C) [anos] [nome do detentor de direito autoral]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses>.

Linking [nome do seu programa] statically or dynamically with other modules is making a combined work based on [nome do seu programa]. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of [nome do seu programa] give you permission to combine [nome do seu programa] with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of [nome da biblioteca] under the [nome da licença da sua biblioteca] (or modified versions of such code, with unchanged license). You may copy and distribute such a system following the terms of the GNU GPL for [nome do seu programa] and the licenses of the other code concerned{, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code}.

Note that people who make modified versions of [nome do seu programa] are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.2

Como eu consigo um direito autoral sobre meu próprio programa de forma a lançá-lo sob a GPL? (#HowIGetCopyright)

Pela a convenção de Berne, tudo que é escrito recebe automaticamente direitos autorais a partir do momento em que são postas em uma forma fixa. Então, você não tem que fazer nada para “conseguir” o direito autoral daquilo que você escreve – desde que ninguém mais possa reclamar propriedade sobre o seu trabalho.

Entretanto, registrar o direito autoral nos Estados Unidos pode ser uma ideia muito boa. Isso dará a você mais força ao lidar com um infrator naquele país.

O caso em que alguém mais pode possivelmente vir a reivindicar o seu direito autoral é você ser um empregado ou estudante; então o empregador ou a escola poderia dizer que você fez o trabalho para eles e que o direito autoral pertence a eles. Se eles teriam uma alegação válida ou não dependeria das circunstâncias, tais como as leis do lugar onde você vive, e do seu contrato de trabalho e do tipo de trabalho que você faz. É melhor consultar um advogado caso haja dúvida.

Se você acha que o empregador ou a escola poderiam ter a alegação plausível, você pode resolver, de forma clara, o problema obtendo uma aviso de renúncia de direito autoral assinado por um funcionário devidamente autorizado da sua empresa ou escola. (Seu chefe imediato ou um professor normalmente NÃO estão autorizados a assinar tal aviso).

E se a minha escola quiser tornar meu programa em seu próprio produto de software proprietário? (#WhatIfSchool)

Muitas universidades nos dias de hoje tentam levantar fundos restringindo o uso do conhecimento e da informação que elas desenvolvem, se comportando, na prática, de forma pouco diferente de empresas comerciais. (Ver “The Kept University”, Atlantic Monthly, Março de 2000, para uma discussão geral desse problema e seus efeitos).

Se você perceber qualquer chance de que sua escola possa se recusar a permitir que seu programa seja lançado como software livre, o melhor a fazer é levantar a questão o quanto antes. Quanto mais próximo o programa estiver da funcionalidade, mais a administração poderá se sentir tentada a tomá-lo de você e terminá-lo sem você. Em um estágio inicial, você tem mais chances.

Então nós recomendamos que você se aproxime deles quando o programa estiver apenas pela metade, dizendo “Se vocês concordarem em publicar isto como software livre, então eu o terminarei”. Não pense nisso como um blefe. Para prevalecer, você precisa ter a coragem de dizer “Meu programa terá liberdade ou nunca nascerá”.

Vocês poderiam me dar instruções passo a passo de como aplicar a GPL em meu próprio programa? (#CouldYouHelpApplyGPL)

Veja a página de instruções da GPL.

Eu ouvi que alguém tem uma cópia de um programa, publicado sob a GPL, sob uma outra licença. Isso é possível? (#HeardOtherLicense)

A GNU GPL não dá aos usuários permissão para adicionar outras licenças ao programa. Mas o detentor de direito autoral pode lançar seu trabalho sob várias licenças em paralelo. Uma delas pode ser a GNU GPL.

A licença que vem na sua cópia, supondo que ela tenha sido colocada pelo detentor de direito autoral e que você tenha obtido a cópia de forma legítima, é a que se aplica para a sua cópia.

Eu gostaria de lançar um programa que escrevi sob a GNU GPL, mas eu também gostaria de usar parte do código em programas não livres. (#ReleaseUnderGPLAndNF)

Lançar um programa não livre sempre é eticamente sujo, mas legalmente, não há obstáculo algum a você fazer isso. Se você é o detentor do direito autoral do código, você pode lançá-lo sob várias licenças diferentes, não mutuamente exclusivas, em vários momentos.

O desenvolvedor de um programa coberto pela GPL está atado a GPL? As ações do desenvolvedor podem em algum momento constituir uma violação da GPL? (#DeveloperViolate)

Estritamente falando, a GPL é uma licença do desenvolvedor para outros usarem, distribuírem e mudarem o programa. O desenvolvedor mesmo não está sujeito a ela, então não importa o que ele faça, não será uma “violação” da GPL.

Entretanto, se o desenvolvedor fizer algo que seria uma violação da GPL se feito por alguma outra pessoa, ele certamente vai perder qualquer moral na comunidade.

O desenvolvedor de um programa que o distribuiu sob a GPL pode mais tarde licenciá-lo para outras pessoas para uso exclusivo? (#CanDeveloperThirdParty)

Não, porque o público já tem o direito de usar o programa sob a GPL e esse direito não pode ser retirado.

Posso usar editores de texto cobertos pela GPL, como o GNU Emacs, para desenvolver programas não livres? Posso usar ferramentas cobertas pela GPL, como o GCC, para compilá-los? (#CanIUseGPLToolsForNF)

Sim, porque o direito autoral dos editores e das ferramentas não cobre o código que você escreve. Usá-los não coloca quaisquer restrições, legalmente, na licença que você usa para o seu código.

Alguns programas copiam parte deles mesmos na sua saída por razões técnicas – por exemplo, o Bison copia um programa padrão em seu arquivo de saída. Em tais casos, o texto copiado na saída é coberto pela mesma licença que cobre esse trecho no código-fonte. Ao mesmo tempo, a parte da saída que é derivada da entrada do programa herda o status do direito autoral da entrada.

Como isso acontece, o Bison também pode ser usado para desenvolver programas não livres. Isso porque decidimos explicitamente permitir o uso do programa analisador padrão do Bison nos arquivos de saída do Bison sem restrição. Nós tomamos essa decisão porque outras ferramentas comparáveis ao Bison já permitiam o uso para programas não livres.

Tenho direitos de “uso justo” no uso do código-fonte de algum programa sob a GPL? (#GPLFairUse)

Sim, você pode. “Uso justo” é o uso que é permitido sem nenhuma permissão especial. Uma vez que você não precisa da permissão do desenvolvedor para tal uso, você pode fazê-lo a despeito de qualquer coisa que ele diga a respeito – na licença ou em qualquer outro lugar, seja a licença a GNU GPL ou qualquer outra licença de software livre.

Observe, entretanto, que não há nenhum princípio mundialmente válido para uso justo; que tipos de uso são considerados “justos” varia de país para país.

O Governo dos Estados Unidos pode lançar um programa sob a GNU GPL? (#GPLUSGov)

Se um programa é escrito pelos funcionários do governo federal dos Estados Unidos no desempenho de suas funções, isso está no domínio público, que significa que não tem direito autoral. Já que a GNU GPL é baseada em direitos autorais, tal programa não pode ser lançado sob a GNU GPL. (Mesmo assim, ele pode ser software livre, pois um programa de domínio público é livre.)

Contudo, quando uma agência do governo federal dos Estados Unidos contrata desenvolvedores de software, trata-se de uma situação diferente. O contrato pode exigir que o contratado lance o programa sob a GNU GPL. (GNU Ada foi desenvolvido dessa forma.) Ou o contratado pode assinar o direito autoral para a agência do governo, que pode então lançar o software sob a GNU GPL.

O Governo dos Estados Unidos pode lançar melhorias para programas sob a GPL? (#GPLUSGovAdd)

Sim. Se as melhorias são escritas por funcionários do governo dos Estados Unidos no desempenho de suas funções, então as melhorias estão no domínio público. Contudo, a versão melhorada, como um todo, ainda está coberta pela GNU GPL. Não há problema nessa situação.

Se o governo dos Estados Unidos contrata usuários para fazer o trabalho, então as melhorias podem estar cobertas pela GPL.

A GPL tem requisitos diferentes para módulos vinculados estaticamente e dinamicamente com o trabalho coberto? (#GPLStaticVsDynamic)

Não. Vincular um trabalho coberto pela GPL estaticamente ou dinamicamente a outros módulos é fazer um trabalho combinado baseado em um trabalho sob a GPL. Assim, os termos e condições da Licença Pública Geral GNU cobrem a combinação completa. Veja também Que problemas legais ocorrem se eu usar uma biblioteca incompatível com a GPL junto com um software GPL?

A LGPL tem requisitos diferentes para módulos vinculados estaticamente e dinamicamente com um trabalho coberto? (#LGPLStaticVsDynamic)

Para efeito de cumprimento com a LGPL (qualquer versão existente: v2, v2.1 ou v3):

(1) Se você vincular estaticamente a uma biblioteca LGPL, você deve também fornecer seu aplicativo em um formato objeto (não necessariamente o fonte), de forma que um usuário tenha a oportunidade para modificar a biblioteca e vincular novamente o aplicativo.

(2) Se você vincular dinamicamente a uma biblioteca LGPL já presente no computador do usuário, você não precisa transmitir o fonte da biblioteca. Por outro lado, se você mesmo transmitir o executável da biblioteca sob LGPL com seu aplicativo, seja vinculado estaticamente ou dinamicamente, você deve também transmitir os fontes da biblioteca, da mesma forma que a LGPL fornece.

Há alguma forma de eu poder aplicar a GPL para a saída que as pessoas recebem do meu programa? Por exemplo, se meu programa é usado para desenvolver sistemas de hardware, posso exigir que esses sistemas sejam livres? (#GPLOutput)

Em geral, isso é legalmente impossível; a lei de direitos autorais não lhe permite dizer nada sobre o uso da saída de seus dados usando o seu programa. Se um usuário usar o seu programa para inserir ou converter dados dela, o direito autoral da saída pertence a ela, e não a você. Mais amplamente, quando um programa traduz sua entrada em alguma outra forma, o status do direito autoral da saída herda o da entrada da qual foi gerada.

Assim sendo, a única forma que você tem de dizer algo sobre a saída é se partes substanciais dessa saída sejam copiadas (mais ou menos) de texto no seu programa. Por exemplo, parte da saída do Bison (veja acima) poderia ser coberta pela GNU GPL, se nós não tivéssemos feito uma exceção para esse caso específico.

Você poderia fazer artificialmente com que um programa copiasse algum texto em sua saída mesmo quando não houvesse razão para fazê-lo. Mas se aquele texto não servir para nenhum propósito prático, o usuário poderia simplesmente deletá-lo da saída e usar apenas o resto. Então ele não teria que obedecer às condições de redistribuição do texto copiado.

Em que casos a saída de um programa GPL é coberta pela GPL também? (#WhatCaseIsOutputGPL)

A saída de um programa não é, em geral, coberto pelo direito autoral sobre o código do programa. Então a licença do código do programa não se aplica para a saída, se você canalizá-la em um arquivo, fazer uma captura de tela, screencast ou vídeo.

A exceção deveria ser quando um programa mostra na tela texto e/ou arte que vem de um programa. Então o direito autoral sobre aquele texto e/ou arte coberto pela saída. Programas de saída de áudio, como video games, também poderia inserir essa exceção.

Se a arte/música está sob a GPL, então a GPL se aplica quando você a cópia e não importa como você a copia. Contudo, o uso justo pode ser ainda aplicado.

Tenha em mente que alguns programas, particularmente vídeo games, podem ter artwork/áudio que é licenciado separadamente do jogo GPL. Nesses casos, a licença sobre o artwork/áudio ditaria os termos sob quais pode ocorrer o video/streaming. Veja também: Posso usar a GPL para outras coisas que não seja software?

Se eu adicionar um módulo a um programa coberto pela GPL, eu tenho que usar a GPL como licença para o meu módulo? (#GPLModuleLicense)

A GPL diz que o programa todo tem que ser lançado sob a GPL. Portanto, seu módulo tem que estar disponível sob a GPL.

Mas você pode dar permissão adicional para o uso do seu código. Você pode, se desejar, lançar seu módulo sob uma licença que seja mais leniente que a GPL, mas compatível com a GPL. A página de listagem de licenças fornece uma lista parcial das licenças compatíveis com a GPL.

Se uma biblioteca é lançada sob a GPL (não a LGPL), isso significa que qualquer programa que a usa tem que estar sob a GPL ou uma licença compatível com a GPL? (#IfLibraryIsGPL)

Sim, porque o programa realmente se vincula à biblioteca. Como tal, os termos da GPL se aplicam à combinação por completo. Os módulos de software que se vinculam à biblioteca podem estar sob várias licenças compatíveis com GPL, mas o trabalho como um todo deve ser licenciado sob a GPL. Veja também: O que significa dizer que uma licença é “compatível com a GPL”?

Se um interpretador de uma linguagem de programação for lançado sob a GPL, isso significa que programas escritos para serem interpretados nele precisam estar sob uma licença compatível com a GPL? (#IfInterpreterIsGPL)

Quando o interpretador só interpreta uma linguagem, a resposta é não. O programa interpretado, para o interpretador, é apenas um conjunto de dados; uma licença de software livre como a GPL, baseada na lei de direitos autorais, não pode discriminar os dados nos quais você vai executar o interpretador. Você pode executar ele com quaisquer dados (programa interpretado), de qualquer forma que você queria, e não há nenhuma necessidade de licenciar esses dados para quem quer que seja.

Entretanto, quando o interpretador é estendido para fornecer “amarrações” (bindings) para outros recursos (frequentemente, mas não necessariamente, bibliotecas), o programa interpretado passa a estar efetivamente vinculado aos recursos que ele utiliza por meio dessas bindings. Então, se esses recursos são lançados sob a GPL, o programa interpretado que os usa precisa ser lançado de uma forma compatível com a GPL. A JNI, ou Interface Nativa do Java, é um exemplo de tais recursos; bibliotecas que são acessadas dessa forma são vinculadas dinamicamente aos programas Java que as chamam. Essas bibliotecas também estão vinculadas com o interpretador. Se o interpretador estiver vinculado estaticamente a essas bibliotecas, ou se for projetado para vincular dinamicamente a essas bibliotecas específicas, ele também precisa ser lançado de uma maneira compatível com GPL.

Um outro caso similar, muito comum, é fornecer bibliotecas, com o interpretador, que sejam elas mesmas interpretadas. Por exemplo, Perl vem com muitos módulos de Perl, e uma implementação de Java vem com muitas classes de Java. Essas bibliotecas e os programas que as chama sempre estão vinculados dinamicamente.

A consequência é que se você optar por usar módulos Perl ou classes Java sob a GPL em seu programa, você precisa lançar o programa de alguma forma compatível com a GPL, qualquer que seja a licença usada no interpretador Perl ou Java no qual o programa combinado será executado.

Estou escrevendo um aplicativo para Windows com Microsoft Visual C++ (ou Visual Basic) e eu vou lançá-lo sob a GPL. É permitido vincular dinamicamente meu programa com as bibliotecas de tempo de execução do Visual C++ (ou do Visual Basic) sob a GPL? (#WindowsRuntimeAndGPL)

Você pode vincular seu programa a essa biblioteca, e distribuir o programa compilado para os outros. Quando você faz isso, as bibliotecas em execução são “System Libraries” (“Bibliotecas de Sistema”) como definido pela GPLv3. Isso significa que você não precisa se preocupar com a inclusão do código-fonte deles com o código do programa correspondente. GPLv2 fornece uma exceção similar na seção 3.

Você não pode distribuir essas bibliotecas compiladas em DLL com o programa. Para evitar que distribuidores inescrupulosos tentem usar a exceção de System Library como um buraco, a GPL diz que as bibliotecas só podem se qualificar como System Libraries desde que eles não estejam distribuídas com o programas em si. Se você distribuir as DLLs com o programa, eles não serão aptas para essa exceção; então o único caminho para obedecer com o que a GPL seria fornecer o código-fonte deles, que você está incapaz de fazer.

É possível escrever programas livres que somente funcionam no Windows, mas isso não é uma boa ideia. Esses programas estariam “presos” pelo Windows e, portanto, seria contribuição zero para o Mundo Livre.

Por que a licença BSD original é incompatível com a GPL? (#OrigBSD)

Porque ela impõe uma exigência específica que não está na GPL; a saber, a exigência sobre propagandas do programa. Seção 6 da GPLv2 diz:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein3.

A GPLv3 diz algo semelhante na seção 10. A cláusula sobre propagandas fornece apenas uma tal restrição e, portanto, é incompatível com a GPL.

A licença BSD revisada não tem mais a cláusula sobre propaganda, o que elimina o problema.

Quando um programa e seus plug-ins são considerados um único programa combinado? (#GPLPlugins)

Depende de como o programa principal invoca seus plug-ins. Se o programa principal usa fork e exec para invocar plug-ins e estabelecendo comunicação íntima compartilhando estruturas de dados complexas ou enviando estruturas de dados complexas de um lado para o outro, isso pode torná-los um único programa combinado. Um programa principal que usa fork e exec simples para invocar plug-ins e não estabelece comunicação íntima entre eles resulta em que os plug-ins sejam um programa separado.

Se o programa se vincula dinamicamente aos plug-ins, e eles fazem chamadas de funções entre si e dividem estruturas de dados, nós acreditamos que eles formam um único programa combinado, que deve ser tratado como uma extensão do programa principal e dos plug-ins. Se o programa principal se vincular dinamicamente a plug-ins, mas a comunicação entre eles for limitada a invocar a função main do plug-in com algumas opções e aguardando seu retorno, isto é, um caso limite.

Usando uma memória compartilhada para comunicar com um dado estruturado complexo é equivalente para uma vinculação dinâmica.

Se eu escrever um plug-in para usar com um programa sob a GPL, quais são os requisitos que isso impõe nas licenças que eu posso usar para distribuir meu plug-in? (#GPLAndPlugins)

Por favor, veja esta pergunta para determinar quando os plug-ins e um programa principal são considerados um único programa combinado e quando são considerados trabalhos separados.

Se o programa principal e os plug-ins forem um único programa combinado, isso significa que você deve licenciar o plug-in sob a licença GPL ou uma licença de software livre compatível com GPL e distribuí-lo com o código-fonte de forma compatível com a GPL. Um programa principal separado dos seus plug-ins não apresenta requisitos para os plug-ins.

Posso usar a GPL ao escrever um plug-in para um programa não livre? (#GPLPluginsInNF)

Por favor, veja esta pergunta para determinar quando os plug-ins e um programa principal são considerados um único programa combinado e quando são considerados programas separados.

Se eles formam um único programa combinado, isso significa que a combinação do plug-in coberto pela GPL com o programa principal não livre violaria a GPL. No entanto, você pode resolver esse problema legal adicionando uma exceção à licença do seu plug-in, dando permissão para vinculá-lo ao programa principal não livre.

Veja também a pergunta Eu estou escrevendo software livre que usa uma biblioteca não livre.

Posso lançar um programa não livre que é projetado para carregar um plug-in sob a GPL? (#NFUseGPLPlugins)

Por favor, veja esta pergunta para determinar quando os plug-ins e um programa principal são considerados um único programa combinado e quando são considerados programas separados.

Se eles formam um único programa combinado, o programa principal deve ser lançado sob a GPL ou uma licença de software livre compatível com a GPL, e os termos da GPL devem ser seguidos quando o programa principal é distribuído para uso com esses plug-ins.

No entanto, se eles são trabalhos separados, a licença do plug-in não cria requisitos sobre o programa principal.

Veja também a pergunta Eu estou escrevendo software livre que usa uma biblioteca não livre.

Você tem um programa sob a GPL que eu gostaria de vincular meu código para desenvolver um programa proprietário. O fato de eu vincular meu código ao seu programa significa que eu tenho que publicar meu programa sob a GPL? (#LinkingWithGPL)

Não exatamente. Significa que você deve lançar seu programa sob uma licença compatível com a GPL (mais precisamente, compatível com uma ou mais versões GPL para todo o código na combinação que você vincular). A combinação por si só está disponível sob aquelas versões GPL.

Se sim, há alguma chance de eu obter seu programa sob a Licença Pública Geral Menor (LGPL)? (#SwitchToLGPL)

Você pode pedir, mas a maior parte dos autores vai se manter firme e dizer não. A ideia da GPL é que se você quiser incluir nosso código no seu programa, o seu programa também tem que ser software livre. A ideia é pressionar você para que você lance seu programa de forma que ele seja parte de nossa comunidade.

Você sempre tem a alternativa legal de não usar o nosso código.

A distribuição de um driver não livre que se vincula com o kernel Linux, significa violar a GPL? (#NonfreeDriverKernelLinux)

Linux (o kernel no sistema operacional GNU/Linux) é distribuído sob GNU GPL versão 2. A distribuição de um driver não livre que se vincula ao Linux, significa violar a GPL?

Sim, isso é uma violação, porque efetivamente isso faz uma larga combinação de trabalho. O fato do usuário estar esperando algo do tipo realmente não muda nada.

Cada contribuidor do Linux que detém direitos autorais de uma parte substancial do código pode fazer valer a GPL e nós encorajamos que cada um desses tome ação contra essas distribuições de drivers Linux não livre.

Como posso permitir vinculação de módulos proprietários com minha biblioteca sob GPL sob uma interface controlada somente? (#LinkingOverControlledInterface)

Adicionar esse texto ao aviso de licença em cada arquivo no pacote, e no final do texto que diz que o arquivo é distribuído sob a GNU GPL:

Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code and provided that you do not modify the ABCDEF interface.

Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception. If you modify the ABCDEF interface, this exception does not apply to your modified version of ABC, and you must remove this exception when you distribute your modified version.

This exception is an additional permission under section 7 of the GNU General Public License, version 3 (“GPLv3”)4

Essa exceção permite vincular a módulos de vários tipos de licenças sobre a interface especificada (“ABCDEF”), enquanto garante que os usuários ainda receberiam o código-fonte como normalmente ocorre sob a GPL.

Apenas os detentores de direitos autorais para o programa podem legalmente autorizar esta exceção. Se você escreveu o programa pessoalmente, então, supondo que seu empregador ou sua escola não reivindique o direito autoral, você é o detentor do direito autoral – então você pode autorizar a exceção. Mas se você quiser usar partes de outros programas cobertos pela GPL, escritos por outras pessoas, no seu código, você não pode autorizar a exceção por eles. Você tem que obter a aprovação dos detentores de direitos autorais daqueles programas.

Eu escrevi um aplicativo que se vincula com muitos componentes diferentes, que têm licenças diferentes. Estou muito confuso a respeito de quais restrições recaem sobre o meu programa. Vocês podem por favor me dizer que licença eu posso usar? (#ManyDifferentLicenses)

Para responder esta questão, nos teríamos que ver uma lista de cada componente que seu programa usa, a licença daquele componente, e um sumário (umas poucas sentenças para cada um são o suficiente) descrevendo como sua biblioteca usa aquele componente. Dois exemplos seriam:

  • Para fazer meu software funcionar, ele precisa estar vinculado à biblioteca FOO, que está disponível sob a licença GPL.
  • Meu software faz uma chamada de sistema (com uma linha de comando que eu construí) para executar o programa BAR, que está licenciado sob à “GPL, com uma exceção especial permitindo que ele seja vinculado com QUUX”.
Qual é a diferença entre uma “aggregate” e outros tipos de “modified versions”? (#MereAggregation)

Uma “agregação” consiste em um número de programas separados, distribuídos juntos no mesmo CD-ROM ou outra mídia. A GPL permite que você crie e distribua como uma agregação, mesmo quando as licenças de outros softwares são não livres ou incompatíveis com a GPL. A única condição é que você não pode lançar a agregação sob uma licença que proíba os usuários de exercerem seus direitos que cada licença individual concederia a eles.

Onde está a linha entre dois programas separados e um programa com duas partes? Esta é uma questão legal que, no final das contas, os juízes decidirão. Nós acreditamos que um critério apropriado dependeria do mecanismo de comunicação (exec, pipes, rpc, chamadas a funções em um espaço de endereço compartilhado, etc.) e da semântica da comunicação (quais tipos de informação são trocados).

Se os módulos são incluídos no mesmo arquivo executável, então eles estão definitivamente combinados em um único programa. Se os módulos são desenhados para funcionarem vinculados juntos num espaço de endereçamento compartilhado, isso quase com certeza significa combiná-los num único programa.

Em contraste, pipes, soquetes e argumentos de linha de comando são mecanismos de comunicação normalmente utilizados entre programas separados. Mas se a semântica das comunicações for íntima o suficiente, trocando complexas estruturas de dados internas, isso também seria base para considerar as duas partes combinadas num programa maior.

Quando se trata de determinar se duas peças de software formam um único trabalho, o fato de o código estar em um ou mais contêineres tem algum efeito? (#AggregateContainers)

Não, a análise de se eles são um único trabalho ou uma agregação não é alterada pelo envolvimento de contêineres.

Por que a FSF exige que colaboradores de programas cujo direito autoral é dela atribuam tais direitos à FSF? Se eu detenho o direito autoral de um programa sob a GPL, devo fazer isso também? Em caso positivo, como? (#AssignCopyright)

Nossos advogados nos disseram que para estarmos na melhor posição para fazer valer a GPL contra violadores, nos tribunais, devemos manter a condição do direito autoral dos programas o mais simples possível. Nós fazemos isso pedindo a cada contribuidor que atribua o direito autoral sobre contribuições para a FSF, ou renuncie seu direito autoral sobre contribuições.

Nós também pedimos a contribuidores individuais que consigam os avisos de renúncia de direito autoral de seus empregadores (se há algum) de forma que nós possamos ter certeza de que aqueles empregadores não possam reclamar a posse dessas contribuições.

Claro que se todos os contribuidores colocarem seu código em domínio público, também não haverá direito autoral com o qual fortalecer a GPL. Então nós encorajamos as pessoas a atribuírem direitos autorais a contribuições grandes de código, e a colocar apenas pequenas modificações no domínio público.

Se você quer fazer um esforço para fortalecer a GPL no seu programa, provavelmente é uma boa ideia para você seguir uma política similar. Por favor, contate <licensing@gnu.org> se você deseja mais informação.

Posso modificar a GPL e criar uma licença modificada? (#ModifyGPL)

É possível fazer versões modificadas da GPL, mas tende ter consequências práticas.

Você pode legalmente usar os termos da GPL (possivelmente modificada) em outra licença que você forneceu e chamá-la por outro nome e não incluir o preâmbulo GPL, fornecendo sua modificação e a instrução para uso no final de forma suficiente clara para fazer diferente em texto e não mencionar a GNU (através do procedimento atual descrito que pode ser similar).

Se você deseja usar nosso preâmbulo na licença modificada, por favor escreva para <licensing@gnu.org> para pedir permissão. Para esse propósito nós gostaríamos de verificar os requisitos da licença atual para ver se nós aprovamos.

Apesar que nós não fazermos objeções legais a sua licença modificada, nós acreditamos que você pensará duas vezes e não fará isso. Tal licença modificada é certamente quase incompatível com a GNU GPL, e que módulos de combinações úteis de blocos incompatíveis. A mera proliferação de diferentes licenças de software livre é um fardo por si só.

Em vez de modificar a GPL, por favor use o mecanismo de exceção oferecido pela GPL versão 3.

Se eu uso uma peça de software que tenha sido obtida sob a GNU GPL, tenho permissão para modificar o código original para um programa novo, e então distribuir e vender o novo programa comercialmente? (#GPLCommercially)

Você tem permissão para vender cópias do programa modificado comercialmente, mas apenas sob os termos da GNU GPL. Então, por exemplo, você precisa disponibilizar seu código-fonte a usuários do programa conforme descrito na GPL, e eles devem ter a permissão de redistribuir e modificar seu programa, como descrito na GPL.

Estes requisitos são a condição para incluir o código coberto pela GPL que você recebeu em seu próprio programa.

Posso usar a GPL para algo que não seja software? (#GPLOtherThanSoftware)

Você pode aplicar a GPL à qualquer tipo de trabalho, tanto quanto seja claro o que constitui o “código-fonte” do trabalho. A GPL define isso como sendo a forma preferida do trabalho para se fazer mudanças nele mesmo.

Entretanto, para manuais e livros texto, ou de forma mais geral para qualquer tipo de trabalho cujo objetivo seja ensinar um assunto, nós recomendamos que se use a GFDL, ao invés da GPL.

Como a LGPL trabalha com Java? (#LGPLJava)

Veja esse artigo para mais detalhes. Funciona como projetado, pretendido e esperado.

Considere esta situação: 1) X lança a V1 de um projeto sob a GPL. 2) Y contribui para o desenvolvimento de V2 com mudanças e novo código baseado no V1. 3) X quer mudar V2 para uma licença outra que a GPL. X precisa da permissão de Y? (#Consider)

Sim. De Y foi exigido que ele lance sua versão sob a GNU GPL, como uma consequência de basear seu programa na versão V1 de X. Nada foi pedido a ele para concordar em lançar seu código sob qualquer outra licença. Portanto, X tem que ter a permissão de Y antes de lançar aquele código sob qualquer outra licença.

Eu gostaria de incorporar software coberto pela GPL no meu sistema proprietário. Eu não tenho permissão para usar aquele software, exceto o que a GPL me dá. Posso fazer isso? (#GPLInProprietarySystem)

Você não pode incorporar software coberto pela GPL em um sistema proprietário. O objetivo da GPL é conceder a todos a liberdade de copiar, redistribuir, entender e modificar um programa. Se você pudesse incorporar software coberto pela GPL em um sistema não livre, isso teria o mesmo efeito que tornar o código GPL em não livre.

Um sistema que incorpore um programa coberto pela GPL é uma versão estendida daquele programa. A GPL diz que qualquer versão estendida do programa precisa ser lançado sob a GPL, se ela for lançada. Isso ocorre por duas razões: para se assegurar de que os usuários que obtenham o software tenham a liberdade que eles devem ter, e encorajar as pessoas a devolverem para a comunidade as melhorias que elas façam.

Entretanto, em muitos casos você pode distribuir o software coberto pela GPL junto com o seu sistema proprietário. Para fazer isso de forma válida, você deve estar certo de que programas livres e não livres se comuniquem a uma distância segura, de forma que eles não estejam combinados de um jeito que faria deles efetivamente um único programa.

A diferença entre isso e “incorporar” o software coberto pela GPL é em parte uma questão de substância e em parte de forma. A parte substantiva é: se dois programas estão combinados de forma que eles se tornam efetivamente partes de um único programa, então você não os pode tratar como dois programas separados. Portanto a GPL tem que cobrir todo o conjunto.

Se os dois programas permanecem bem separados, como o compilador e o kernel, ou como um editor e uma shell, então você pode tratá-los como dois programas separados – mas você tem que fazer isso da maneira correta. A questão é simplesmente formal: como você descreve o que você está fazendo. Por que nos importamos com isso? Porque nós queremos assegurar que os usuários entendam perfeitamente a condição livre dos softwares cobertos pela GPL na coleção.

Se as pessoas fossem distribuir software coberto pela GPL chamando o mesmo de “parte” de um sistema que os usuários sabem que é em parte proprietário, eles poderiam ficar incertos quanto aos seus direitos no que diz respeito ao software da GNU. Mas se eles sabem que o que eles receberam é um programa livre, mais um outro programa, lado a lado, então seus direitos serão claros.

Eu gostaria de incorporar software coberto pela GPL em meu sistema proprietário. Posso fazer isso colocando um módulo “empacotador”, sob uma licença permissiva compatível com a GPL (como a licença X11) entre uma parte coberta pela GPL e uma parte proprietária? (#GPLWrapper)

Não. A licença X11 é compatível com a GPL, então você pode adicionar um módulo para um programa sob GPL e colocá-lo sob a licença X11. Mas se você estava incorporando ambas em um grande programa, que toda incluiria a parte sob GPL, então teria de ser licenciado como um todo sob a GNU GPL.

O fato que o módulo proprietário A se comunica com um módulo C sob GPL somente através do módulo B sob X11 é legalmente irrelevante; o que importa é o fato que o módulo C é incluído como um todo.

Onde eu posso aprender mais sobre a Exceção da Biblioteca de Tempo de Execução do GCC (GCC Runtime Library Exception)? (#LibGCCException)

A Biblioteca de Exceção em Tempo de Execução GCC cobre libgcc, libstdc++, libfortran, libgomp, libdecnumber, e outras bibliotecas distribuídas com GCC. A exceção significa permitir que pessoas distribuam programas compilados com GCC sob os termos escolhido, até onde as partes da bibliotecas são incluído na parte executável como parte do processo de compilação. Para aprender mais, por favor leia nosso FAQ sobre a Biblioteca de Exceção em Tempo de Execução GCC.

Eu gostaria de modificar programas cobertos pela GPL e vinculá-los com as bibliotecas de compatibilidade da Come Grana S/A. Eu não posso distribuir o código-fonte dessas bibliotecas, então qualquer usuário que quisesse modificar essas versões teria que obter essas bibliotecas separadamente. Por que a GPL não permite isso? (#MoneyGuzzlerInc)

Há duas razões para isso. Primeiro, uma mais geral. Se nós permitíssemos que a empresa A fizesse um arquivo proprietário, e que a empresa B distribuísse software coberto pela GPL vinculado àquele arquivo, o efeito seria um buraco grande o suficiente na GPL para passar com um caminhão. Isso seria carta branca para se manter o controle do código de todos os tipos de modificações e extensões para código coberto pela GPL.

Dar acesso ao código-fonte para todos os usuários é um de nossos objetivos principais, então essa consequência é algo que nós queremos evitar.

De forma mais específica, as versões dos programas ligadas com as bibliotecas da Come Grana não seriam software livre como nós entendemos o termo – elas não viriam com todo o código-fonte que permite aos usuários mudar e recompilar o programa.

Se a licença para um módulo Q tem um requisito que é incompatível com a GPL, mas o requisito se aplica somente quando Q é distribuído por ele mesmo, não enquanto Q é incluído em um programa maior, aquilo torna a licença GPL compatível? Posso combinar ou vincular Q a um programa sob GPL? (#GPLIncompatibleAlone)

Se um programa P é lançado sob a GPL isso significa que *qualquer e toda parte dele* pode ser usada sob a GPL. Se você integrar um módulo Q, e lançar um programa combinado P+Q sob a GPL, significa que qualquer parte de P+Q pode ser usada sob a GPL. Uma parte de P+Q é Q. Então lançando P+Q sob a GPL diz que qualquer parte de Q pode ser usada sob a GPL. Colocando em outras palavras, um usuário que obtenha P+Q sob a GPL pode deletar P, então só resta Q, ainda sob a GPL.

Se a licença do módulo Q permite a você oferecer permissão para ele, então é compatível com a GPL. De outra forma, não é compatível com a GPL.

Se a licença para Q diz em termos não incertos que você deve fazer certas coisas (não compatível com a GPL) quando você redistribuir Q por você mesmo, então ela não permite a você lançar Q sob a GPL. Inclusive, você também não pode lançar P+Q sob a GPL. Então, você não pode vincular ou combinar P com Q.

Posso lançar uma versão modificada de um programa sob a GPL na forma binária somente? (#ModifiedJustBinary)

Não. O ideia central da GPL é que todas as versões modificadas devem ser software livre – que significa, em particular, que o código-fonte da versão modificada está disponível para os usuários.

Baixei apenas a forma binária pela rede. Se eu distribuir cópias, tenho que pegar o código-fonte e distribui-lo também? (#UnchangedJustBinary)

Sim. A regra geral é: se você distribuir binários, você deve distribuir o todo o código-fonte correspondente também. A exceção para o caso no qual você recebe uma oferta por escrito para o código-fonte é bem limitada.

Quero distribuir binários via mídia física sem os fontes. Posso fornecer o código-fonte por FTP ao invés de por e-mail? (#DistributeWithSourceOnInternet)

A versão 3 da GPL permite isso; veja opção 6(b) para detalhes completos. Sob a versão 2, você certamente é livre para ofertar o código via FTP, e a maioria dos usuários pegará de lá. Contudo, se qualquer um deles preferir pegar o fonte em um mídia física por email, você é obrigado a fornecer isso.

Se você distribuir binários FTP, você deve distribuir o fonte via FTP.

Meu amigo obteve um binário sob a GPL com uma oferta para fornecer o fonte e fez uma cópia para mim. Posso usar a oferta para obter o fonte? (#RedistributedBinariesGetSource)

Sim, você pode. A oferta deve ser aberta para qualquer um que tenha uma cópia do binário que o acompanha. Isso é porque a GPL diz que seu amigo deve dar a você uma cópia da oferta com uma cópia do binário – então você pode pegar essa vantagem.

Posso colocar os binários no meu servidor na Internet e colocar os fontes em um site diferente na Internet? (#SourceAndBinaryOnDifferentSites)

Sim. A seção 6(d) permite isso. Portanto, você deve fornecer claramente as instruções para as pessoas obterem o fonte, e você deve ter cuidado de se certificar que o fonte permaneça disponível pelo período que você distribuir o código objeto.

Quero distribuir uma versão estendida de um programa sob a GPL na forma binária. É suficiente distribuir o código-fonte da versão original? (#DistributeExtendedBinary)

Não, você deve suprir o código-fonte que corresponde ao binário. Fonte correspondente significa o código-fonte a partir do qual os usuários possam construir o mesmo binário.

Parte da ideia do software livre é que os usuários devem ter acesso ao código-fonte dos programas que eles usam. Aqueles usando a sua versão devem ter acesso ao código-fonte da sua versão.

Um grande objetivo da GPL é construir o Mundo Livre certificando-se de que melhoramentos a um programa livre sejam eles mesmos livres. Se você lança uma versão melhorada de um programa coberto pela GPL, você deve lançar também o código-fonte melhorado sob a GPL.

Quero distribuir os binários, mas distribuir o código-fonte completo é inconveniente. Tudo bem se eu der aos usuários os diffs da versão “padrão” junto com os binários? (#DistributingSourceIsInconvenient)

Este é um pedido bem intencionado, mas esse método de fornecer os fontes não cumpre, em verdade, o seu papel.

Um usuário que queira o código-fonte daqui a um ano pode estar impossibilitado de obter a versão apropriada de outro site então. O site de distribuição padrão pode ter uma versão mais nova, mas os mesmos diffs provavelmente não funcionarão com essa versão.

Portanto você precisa fornecer os fontes completos, não apenas os diffs, junto com os binários.

Posso disponibilizar arquivos binários por meio de um servidor de rede, mas enviar os fontes apenas para as pessoas que os encomendarem? (#AnonFTPAndSendSources)

Se você disponibilizar um código objeto em um servidor de rede, você tem que fornecer o Fonte Correspondente no servidor de rede também. O caminho mais fácil é publicar isso no mesmo servidor, mas se você quiser, você pode alternativamente fornecer instruções para obter o fonte de outro servidor, ou até um sistema de controle de versão. Não importa qual o método, o fonte deve ter fácil acesso como o código objeto. Tudo isso é especificado na seção 6(d) da GPLv3.

Os fontes que você fornece precisam corresponder exatamente aos binários. Em particular, você deve se certificar de que eles sejam da mesma versão do programa – não de uma versão mais antiga e não de uma versão mais nova.

Como eu posso me certificar de que cada usuário que baixa os binários também baixa os fontes? (#HowCanIMakeSureEachDownloadGetsSource)

Você não tem que se certificar disso. Desde que você mantenha os fontes e os binários disponíveis de forma que os usuários possam ver o que está disponível e pegar o que eles quiserem, você cumpriu com as suas obrigações. O usuário decide se ele baixa os fontes ou não.

Nossas exigências por redistribuidores têm a intenção de garantir que os usuários possam obter o código-fonte, não de forçar os usuários a baixarem o código-fonte mesmo que eles não queiram.

A GPL exige que eu forneça o código-fonte que pode ser compilado para corresponder ao hash exato do binário que estou distribuindo? (#MustSourceBuildToMatchExactHashOfBinary)

Fonte correspondente completo significa o fonte a partir do qual os binários foram feitos, mas o que não implica em suas ferramentas terem que ser capaz de fazer um binário que seja exatamente um hash exato do binário que você está distribuindo. Em alguns casos ele poderia ser (aproximadamente) impossível compilar um binário do fonte com um hash exato do binário sendo distribuído – considere o seguinte exemplo: um sistema pode colocar marcas de tempo em binários; ou o programa pode ter sido compilado com uma versão diferente (até não lançada) do compilador.

Uma empresa está executando uma versão modificada de um programa sob a GPL em um site. A GPL diz que eles devem lançar suas versões modificadas? (#UnreleasedMods)

A GPL permite alguém fazer uma versão modificada e usá-la sem distribuir para os outros. O que essa empresa está fazendo é um caso especial dela. Portanto, a empresa não tem que lançar os fontes modificados. A situação é diferente de quando o programa modificado está licenciado sob os termos da GNU Affero GPL.

Compare isso com uma situação em que o site contém ou links para separar os programas sob a GPL que são distribuídos ao usuário quando eles visitam o site (geralmente escritos em JavaScript, mas outras linguagens também são usadas). Nessa situação, o código-fonte dos programas distribuídos deve ser lançado para o usuário sob os termos da GPL.

Uma empresa está executando uma versão modificada de um programa licenciado sob a GNU Affero GPL (AGPL) em um site. A AGPL diz que eles devem lançar seus fontes modificados? (#UnreleasedModsAGPL)

A GNU Affero GPL exige que versões modificadas do software ofereçam a todos os usuários que interagem com ele através de uma rede de computadores a oportunidade de receber a fonte. O que a empresa está fazendo tem esse significado, portanto, a empresa deve lançar o código-fonte modificado.

Fazer e usar múltiplas cópias dentro de uma organização ou empresa de “distribuição”? (#InternalDistribution)

Não, no caso de organização é feito a cópia para si mesmo. Como consequência, uma empresa ou outra organização pode desenvolver uma versão modificada e instalar essa versão através de suas facilidades, sem dar as permissões para os funcionários lançar essa versão modificada para os outros indivíduos.

Contudo, quando a organização transfere cópias para outra organização ou indivíduos, isso é distribuição. Em particular, fornecendo cópias para os contratantes para o uso fora é distribuição.

Se alguém furtar um CD contendo uma versão de um programa sob a GPL, a GPL dá a ele o direito de redistribuir aquela versão? (#StolenCopy)

Se a versão foi lançada em outro lugar, então o ladrão provavelmente tem o direito para fazer cópias e redistribuir sob a GPL, mas se o ladrão for preso por roubar o CD, pode-se ter que esperar até que seja lançada antes de fazê-lo.

Se a versão em questão não está publicada e uma empresa a considera como um segredo comercial, então publicá-la pode ser uma violação das leis de segredo comercial, dependendo de outras circunstâncias. A GPL não muda isso. Se a empresa tentou lançar essa versão e ainda a trata como um segredo comercial, isso violaria a GPL; mas se a empresa não lançou essa versão, tal violação não ocorreu.

E se uma empresa distribuir uma cópia como um segredo comercial? (#TradeSecretRelease)

Se uma empresa distribuir uma cópia para você e reivindicá-la como sendo um segredo comercial, a empresa violou a GPL e terá que cessar a distribuição. Note como isso se difere do caso do furto acima; a empresa não distribuiu intencionalmente uma cópia quando esta foi furtada, de forma que naquele caso a empresa não violou a GPL.

Por que algumas bibliotecas da GNU são lançadas sob a GPL em vez da LGPL? (#WhySomeGPLAndNotLGPL)

Fazer uso da GPL Menor para qualquer biblioteca em particular constitui-se em um retrocesso para o software livre. Significa que nós abandonamos parcialmente a tentativa de defender a liberdade dos usuários e algumas das exigências para compartilhar o que é construído em cima de software coberto pela GPL. Se considerarmos só isso, essas mudanças são para pior.

Algumas vezes um retrocesso localizado é uma boa estratégia. Algumas vezes, usar a LGPL pode levar a um uso mais abrangente daquela biblioteca, e assim, mais melhoramentos para ela, maior suporte para o software livre, e assim por diante. Isso pode ser bom para o software livre se acontecer em grande extensão. Mas em que extensão isso vai acontecer? Nós podemos apenas especular.

Seria interessante tentar a LGPL em cada biblioteca por um tempo, ver se ajuda, e mudar de volta para a GPL se a LGPL não ajudou. Mas isso não é factível. Uma vez que nós tenhamos usado a LGPL para uma dada biblioteca, mudar de volta seria muito difícil.

Então nós decidimos qual licença usar para cada biblioteca caso a caso. Há uma explicação longa de como nós julgamos a questão.

Usar um certo programa da GNU sob a GPL não se encaixa em nosso projeto de software proprietário. Vocês fariam uma exceção para nós? Isso traria mais usuários para aquele programa. (#WillYouMakeAnException)

Desculpe, nós não fazemos tais exceções. Não seria certo.

Maximizar o número de usuários não é o nosso objetivo. Em vez disso, nós tentamos garantir liberdades cruciais a tantos usuários quanto possível. Em geral, projetos de software proprietário mais atrapalham do que ajudam a causa da liberdade.

Nós ocasionalmente fazemos exceções da licença para auxiliar um projeto que esteja produzindo software livre sob uma licença outra que a GPL. Entretanto, nós temos que ver uma boa razão do porque isso vai contribuir para a causa do software livre.

Algumas vezes nós também mudamos os termos de distribuição de um pacote, quando isso parece claramente ser a maneira certa de servir à causa do software livre, mas somos muito cautelosos com isso, assim você terá que nos dar razões bastante convincentes.

Por que os programas devem dizer “Versão 3 da GPL ou qualquer versão posterior”? (#VersionThreeOrLater)

De tempos em tempos, em intervalos de anos, nós mudamos a GPL – algumas vezes para esclarecê-la, outras vezes para permitir alguns tipos de uso não permitidos previamente, e algumas vezes para aumentar mais alguma exigência. (As duas últimas modificações foram em 2007 e 1991.) O uso desse “apontamento indireto” em cada programa torna possível que nós mudemos os termos de distribuição em toda a coleção de software da GNU, quando nós atualizamos a GPL.

Se cada programa não tivesse esse apontamento indireto, nós seríamos forçados a discutir a mudança com numerosos detentores de direitos autorais, o que seria virtualmente impossível. Na prática, as chances de haver termos uniformes para a distribuição de software do GNU seria nula.

Suponha que um programa diga “Versão 3 da GPL ou qualquer versão posterior” e uma nova versão da GPL seja lançada. Se a nova versão da GPL der alguma permissão adicional, aquela permissão estará disponível imediatamente para todos os usuários do programa. Mas se a nova versão da GPL tiver exigências maiores, elas não restringirão usuários da versão atual do programa, pois ele ainda pode ser usado sob a versão 3 da GPL. Quando um programa diz “Versão 3 da GPL ou qualquer versão posterior”, usuários sempre poderão usá-lo, e mesmo modificá-lo, de acordo com os termos da versão 3 – mesmo depois que versões posteriores da GPL estiverem disponíveis.

Se uma exigência maior em um nova versão da GPL não precisa ser obedecida para softwares existentes, como ela serve para alguma coisa? Uma vez que a versão 4 da GPL seja publicada, os desenvolvedores da maior parte dos programas cobertos pela GPL lançarão versões subsequentes de seus programas especificando “Versão 4 da GPL ou qualquer versão posterior”. Então usuários terão que respeitar essas exigências maiores na versão 4 da GPL, para versões subsequentes do programa.

Entretanto, os desenvolvedores não são obrigados a fazer isso; desenvolvedores podem continuar permitindo o uso da versão prévia da GPL, se essa for a sua preferência.

É uma boa ideia usar uma licença que diz que um certo programa pode ser usado somente sob a última versão da GNU GPL? (#OnlyLatestVersion)

A razão pela qual você não deve fazer isso é que isso pode resultar algum dia em remoção automática em algumas permissões que os usuários previamente tinham.

Supondo que um programa foi lançado em 2000 sob “a última versão da GPL”. Naquele tempo, as pessoas poderiam ter usado-o sob GPLv2. A partir do dia em que publicamos a GPLv3 em 2007, todos seriam instantaneamente forçados a usar o programa sob a GPLv3, ao invés de GPLv2.

Alguns usuários talvez nem tenham conhecimento sobre a versão 3 da GPL, mas eles seriam obrigados a usá-la. Eles poderiam ter violado a licença do programa, não intencionalmente, só porque eles não tiveram ciência da novidade. Isso é um mau caminho para tratar as pessoas.

Nós pensamos que é errado pegar de volta uma permissão já concedida, exceto devido uma violação. Se sua liberdade pudesse ser revogada, então isso não é realmente a liberdade. Então, se você pegar uma cópia de uma versão de um programa sob uma versão da licença, você deveria sempre ter os direitos garantidos por aquela versão da licença. Lançando sob a “GPL versão N ou qualquer versão posterior” defende que aquele princípio.

Por que vocês não usam a GPL para manuais? (#WhyNotGPLForManuals)

É possível usar a GPL para um manual, mas a Licença de Documentação Livre GNU (GFDL) é muito melhor para manuais.

A GPL foi projetada para programas; ela contém muitas cláusulas complexas que são cruciais para programas, mas que poderiam ser incômodas e desnecessárias para um livro ou manual. Por exemplo, qualquer publicação do livro em papel teria que incluir o “código-fonte” legível por máquina do livro ao longo com cada cópia imprensa, ou fornecer uma nota por escrito para enviar o “código-fonte” depois.

Enquanto isso, a GFDL tem cláusulas que ajudam editores de manuais livres que um lucro da cópia da venda do – texto de capa, por exemplo. As regras especiais para seção de Endossos que fazem possível o uso da GFDL para um padrão oficial. Isso permitiria versões modificadas, mas eles não são rotulados como “o padrão”.

Usando o GFDL, permitimos mudanças no texto de um manual que abrange seu tópico técnico. É importante poder alterar as partes técnicas, porque as pessoas que mudam um programa devem alterar a documentação para corresponder. A liberdade de fazer isso é um imperativo ético.

Nossos manuais também incluem seções que relatam nossa posição política sobre o software livre. Nós marcamos essas como “invariantes”, então eles não podem alterá-lo ou removê-lo. A GFDL faz disposições para essas “seções invariantes”.

Como a GPL se aplica a fontes? (#FontException)

Licenciamento de fontes é uma questão complexa que necessita de sérias considerações. A exceção de licença a seguir é experimental, mas aprovada para o uso geral. Nós saudamos sugestões sobre esse assunto – por favor veja essa redação explicativa e escreva para licensing@gnu.org.

Para o uso dessa exceção, adicione esse texto ao aviso de licença de cada arquivo em um pacote (para uma possível extensão), no final do texto que diz que o arquivo é distribuído sob a GNU GPL:

As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.5

Eu sou um escritor de um sistema de manutenção de site (chamado de “sistema de gerenciamento de conteúdo” por alguns), ou algum outro aplicativo que gera páginas web de um modelo. Qual licença devo usar para esses modelos? (#WMS)

Modelos são minoria o suficiente para não valer a pena usar copyleft para protegê-los. Normalmente é inofensivo usar um copyleft sobre trabalhos menores, mas modelos são um caso especial porque eles são combinados com dados providos por usuários da aplicativo e a combinação é distribuída. Então, nós recomendamos que sua licença para os modelos sejam sob os simples temos permissivos.

Alguns modelos fazem chamadas em funções JavaScript. Desde que o Javascript seja não trivial, vale a pena usar copyleft. Isto pois os modelos serão combinados com os dados dos usuários, é possível que modelo+dados de usuários+JavaScript sejam considerados como um trabalho sob a lei de direitos autorais. Uma linha precisa ser escrita entre o JavaScript (protegido por copyleft) e o código do usuário (geralmente sob termos incompatíveis).

Um diagrama do conteúdo acima

Aqui está uma exceção para código JavaScript que faz isso:

As a special exception to the GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL. You may copy and distribute such a system following the terms of the GNU GPL for this code and the LGPL for the libraries. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.6

Posso lançar um programa sob a GPL que eu desenvolvi usando ferramentas não livre? (#NonFreeTools)

Os programas você usou para editar o código-fonte, ou compilou-o, ou estudo-o, ou gravou-o, geralmente não fazem diferença por questões a respeito do licenciamento daquele código-fonte.

Portanto, se você vincular bibliotecas não livres ao código-fonte, isso seria um problema com o qual você precisaria lidar. Isso não impede o lançamento do código-fonte sob a GPL, mas se a biblioteca não couber sob a exceção de “biblioteca de sistema”, você deve acrescentar um aviso explícito que dá permissão para vincular seu programa. A entrada no FAQ sobre o uso de bibliotecas incompatíveis com a GPL fornece mais informações sobre como fazer isso.

Há traduções da GPL para outros idiomas? (#GPLTranslations)

Seria útil ter traduções da GPL em idiomas além o inglês. As pessoas até mesmo fizeram traduções e enviaram para nós. Mas não nos atrevemos a aprová-las como oficialmente válidas. Isso traz um risco tão grande que não ousamos aceitá-la.

Um documento legal é de algumas formas parecido com um programa. Traduzi-lo é como traduzir um programa de uma linguagem e sistema operacional para outra. Apenas um advogado com habilidade nos dois idiomas poderia fazê-lo – e mesmo assim há o risco de se introduzir um erro.

Se nós fossemos aprovar, oficialmente, uma tradução da GPL, nós poderíamos estar dando a todas as pessoas a permissão de fazer tudo o que a tradução diz que elas podem fazer. Se for uma tradução completamente fiel a original, tudo bem. Mas se houver um erro na tradução, o resultado poderia ser um desastre que nós não teríamos como consertar.

Se um programa tem um problema, nós podemos lançar uma nova versão, e eventualmente a versão velha vai mais ou menos desaparecer. Mas uma vez que nós tenhamos dado a todo mundo a permissão para agir de acordo com alguma tradução particular, nós não temos uma maneira de tirar essa permissão se nós descobrirmos, mais tarde, que ela tinha um erro.

Pessoas prestativas algumas vezes se oferecem para fazer a tradução por nós. Se o problema fosse encontrar alguém para fazer a tradução, isso o resolveria. Mas o problema real é o risco de erro, e se oferecer para fazer o trabalho não evita o risco. Não poderíamos em qualquer hipótese autorizar uma tradução feita por alguém que não seja advogado.

Portanto, atualmente, não estamos aprovando traduções da GPL como globalmente válidas e funcionais. Ao invés disso nós estamos fazendo duas coisas:

  • Indicando traduções não oficiais para as pessoas. Isso significa que nós permitimos que as pessoas escrevam traduções da GPL, mas nós não as aprovamos como legalmente válidas e funcionais.

    Uma tradução não aprovada não tem força legal, e ela deve dizer isso explicitamente. Ela deve estar marcada assim:

    This translation of the GPL is informal, and not officially approved by the Free Software Foundation as valid. To be completely sure of what is permitted, refer to the original GPL (in English).7

    Mas a tradução não aprovada pode servir como uma dica de como entender a GPL em inglês. Para muitos usuários, isso é o suficiente.

    Entretanto, empresas usando software GNU em atividades comerciais, e pessoas fazendo distribuição pública por ftp, devem precisar verificar a GPL real em inglês para se certificar do que ela permite.

  • Publicando traduções válidas apenas em um país.

    Nós estamos considerando a ideia de publicar traduções que sejam válidas oficialmente apenas para um país. Desta forma, se houver um erro, ele estará limitado àquele país, e o dano não será muito grande.

    Ainda será necessário muita perícia e esforço de um advogado compreensivo e capaz para fazer uma tradução, por isso não podemos prometer tais traduções em breve.

Se um interpretador de linguagem de programação tem uma licença que seja incompatível com a GPL, posso executar programas cobertos pela GPL nele? (#InterpreterIncompat)

Quando o interpretador só interpreta uma linguagem, a resposta é sim. O programa interpretado, para o interpretador, é apenas um conjunto de dados; a GPL não restringe as ferramentas com as quais você processa seus programas.

Entretanto, quando o interpretador é estendido para fornecer “amarrações” (bindings) para outras facilidades (frequentemente, mas não necessariamente, bibliotecas), o programa interpretado está efetivamente vinculado às facilidades que ele usa por meio dessas amarrações. O JNI, ou Interface Nativa do Java, é um exemplo de tal facilidade; bibliotecas que são acessadas dessa forma estão vinculadas dinamicamente aos programas que as chamam.

Portanto, se essas facilidades estão lançadas sob uma licença incompatível com a GPL, a situação é como a de fazer uma vinculação de qualquer outra maneira com uma biblioteca incompatível com a GPL. Isto implica no seguinte:

  1. Se você estiver escrevendo um código e lançando-o sob a GPL, você pode escrever uma exceção explicita dando permissão para a vinculação com essas facilidades não compatíveis com a GPL.
  2. Se você escreveu e lançou o programa sob a GPL, e você o escreveu especificamente para funcionar com essas facilidades, as pessoas podem tomar isso como uma permissão implícita para que elas possam vinculá-las a essas facilidades. Mas se isso é o que você pretende, é melhor dizê-lo explicitamente.
  3. Você não pode aceitar o código coberto pela GPL de outra pessoa e usá-lo dessa forma, ou adicionar tais exceções a ele. Somente os detentores de direitos autorais desse código podem adicionar a exceção.
Quem tem o poder de fazer valer a GPL? (#WhoHasThePower)

Uma vez que a GPL é uma licença protegida por direitos autorais, os detentores de direito autoral do software são os que têm poder para fazer valer a GPL. Caso você veja uma violação da GPL, você deve informar os desenvolvedores do software GPL envolvido. Eles ou serão os detentores de direito autoral, ou estarão conectados aos detentores de direito autoral. Mais informações sobre como relatar violações da GPL.

Em uma linguagem orientada a objetos, tal como Java, se eu usar uma classe que é coberta pela GPL, sem modificações, e fizer uma subclasse da mesma, em que a GPL afeta o programa maior? (#OOPLang)

Fazer uma subclasse é criar um trabalho derivado. Portanto, os termos da GPL afetam todo o programa em que você criou uma subclasse de uma classe sob a GPL.

Se eu portar meu programa para GNU/Linux, isso significa que eu tenho que lançá-lo como software livre sob a GPL ou alguma outra licença de software livre? (#PortProgramToGL)

Em geral, a resposta é não – isso não é uma exigência legal. Para ser mais específico, a resposta depende de que bibliotecas você pretende usar e quais são as suas licenças. A maior parte das bibliotecas de sistema ou usam a GNU LGPL, ou usam a GNU GPL junto com uma exceção permitindo que a biblioteca seja vinculada a qualquer coisa. Essas bibliotecas podem ser usadas em programas não livres; mas no caso da LGPL, há algumas exigências que você deve respeitar.

Algumas bibliotecas são lançadas somente sob a GNU GPL; você precisa usar uma licença compatível com a GNU GPL para usar essas bibliotecas. Mas essas geralmente são as bibliotecas mais especializadas, e você não terá qualquer coisa muito parecida com elas em alguma outra plataforma, portanto, provavelmente você não desejará fazer uso dessas bibliotecas para simplesmente portar o seu software.

Claro, seu software não é uma contribuição para nossa comunidade se ele não for livre, e pessoas que valorizam sua liberdade vão se recusar a usá-lo. Apenas pessoas querendo abrir mão de sua liberdade vão usar seu software, o que significa que ele funcionará efetivamente como uma indução par pessoas perderem sua liberdade.

Se você quiser algum dia olhar para sua carreira e sentir que contribuiu para o crescimento de uma sociedade boa e livre, você precisa tornar livre o seu software.

Acabei de descobrir que uma empresa tem uma cópia de um programa sob a GPL, e custa dinheiro obtê-lo. Eles não estão violando a GPL por não disponibilizá-lo na Internet? (#CompanyGPLCostsMoney)

Não. A GPL não exige que ninguém use a Internet para distribuição. Ela também não exige de ninguém em particular redistribuir o programa. E (exceto em um caso especial), mesmo que alguém decida redistribuir o programa algumas vezes, a GPL não diz que deve-se distribuir uma cópia para você em particular, ou qualquer outra pessoa em particular.

O que a GPL exige é que ele deve ter a liberdade para distribuir uma cópia para você se ele desejar. Uma vez o detentor de direito autoral distribui uma cópia do programa a alguém, esse alguém pode então redistribuir o programa para você, ou para alguém, como apropriado.

Posso lançar um programa com uma licença que diz que você pode distribuir versões modificadas dele sob a GPL, mas não pode distribuir o original sob a GPL? (#ReleaseNotOriginal)

Não. Tal uma licença que estaria contradizendo a si própria. Vamos olhar em suas implicações para mim como um usuário.

Supondo que eu inicie com uma versão original (chamada de versão A), adicione alguns códigos (vamos imaginar que tenha 1000 linhas), e lance aquela versão modificada (chamada de B) sob a GPL. A GPL diz que alguém pode mudar a versão B novamente e lançar o resultado sob a GPL. Então, eu (ou alguém) pode excluir aquelas 1000 linhas, produzindo uma versão C que teve o mesmo código da versão A, mas é GPL.

Se você tentar bloquear esse caminho, dizendo explicitamente na licença que eu não estou permitido a reproduzir algo idêntico para a versão A sob a GPL após excluir aquelas linhas da versão B, o efeito é que a licença agora diz que eu não posso usar totalmente a versão B de todas as formas que a GPL permite. Em outras palavras, a licença, de fato, permite a um usuário lançar uma versão modificada tal como B sob a GPL.

Mover uma cópia para uma subsidiária majoritariamente detida, e controlada, constitui uma distribuição? (#DistributeSubsidiary)

Se mover uma cópia para ou dessa subsidiária constitui “distribuição” é o que importa para ser decidido em cada caso sob a lei de jurisdição apropriada. A GPL não sobrescreve (nem pode sobrescrever) as leis locais. A lei de direitos autorais americana não é totalmente clara nesse aspecto, mas aparenta não considerar isso distribuição.

Se, em alguns países, isso é considerado distribuição, e a subsidiária deve receber os direitos para redistribuir o programa, que não fará uma diferença prática. A subsidiária é controlada pela empresa; direitos ou sem direitos, ela não redistribuirá o programa a menos que a empresa decida fazer.

Instaladores de software podem solicitar que as pessoas cliquem e aceitem a GPL? Se eu pegar algum software sob a GPL, eu tenho que concordar com alguma coisa? (#ClickThrough)

Alguns sistemas de empacotamento de software têm um lugar que exige que você clique ou, do contrato, indique por outro lado assentir os termos da GPL. Isso não é exigido nem proibido. Com ou sem um clique, as regras da GPL continuam as mesmas.

Apenas aceitar a GPL não implica quaisquer obrigações para você. Você não está obrigado a aceitar nada para apenas usar o software que é licenciado sob a GPL. Você somente tem obrigações se você modificar ou distribuir o software. Se isso realmente te incomoda, a GPL nada impede que você hackear um software GPL e ignorar isso.

Eu gostaria de empacotar um software GPL com algum tipo de software de instalação. O instalador precisa para ter uma licença compatível com a GPL? (#GPLCompatInstaller)

Não. O instalador e os arquivos de instalação são trabalhos separados. Como resultado, os termos da GPL não se aplicam ao software de instalação.

Alguns distribuidores de software GPL exigem de mim em seus EULAs “guarda-chuvas” ou como parte de seu processo de download “declarar” (represent and warrant) que eu esteja nos Estados Unidos ou que eu pretenda distribuir o software em conformidade com as leis de controle de exportação. Por que eles estão fazendo isso e isso é uma violação das obrigações dos distribuidores sob a GPL? (#ExportWarranties)

Isso não é violação da GPL. Esses distribuidores (quase todos são negócios comerciais vendendo distribuição de software livre e serviços relacionados) estão tentando reduzir seus próprios riscos legais, e não controlar seu comportamento. Lei de controle de exportação nos Estados Unidos poderia tornar possível se eles intencionalmente exportassem software para certos países, ou se eles dão software para seus partidos que conhecerão formas de exportação. Perguntando por essas declarações dos clientes deles e outros para o qual eles distribuíram o software, eles protegem a si mesmo no evento deles que mais tarde serão perguntados por autoridades reguladoras que eles sabiam onde o software estavam sendo distribuído. Eles não estão restringindo o que você pode fazer com o software, somente prevenindo eles mesmos de acusação a respeito de qualquer coisa que você fizer. Porque eles não classificarão restrições adicionais no software, eles não violam a seção 10 da GPLv3 ou a seção 6 da GPLv2.

A FSF se opõe à aplicação das leis de controle americanas para o software livre. Não apenas as leis são incompatíveis com o objetivo geral da liberdade de software, elas não alcançam o propósito governamental porque o software livre é atualmente e deve sempre estar disponível em partidos em quase todos os países, incluindo países que não tem a lei de controle de exportação que não participam do embargo de comércio americano. Portanto, nenhum governo está privado do software livre pelas leis de controle de exportação Americana enquanto não cidadãos do país devem ser privados do software livre, independentemente das políticas governamentais, no que nos diz respeito. Cópias de todo software GPL são publicadas pela FSF podem ser obtidas de nós sem fazer qualquer representação sobre onde você vive ou o que você pretende fazer. Ao mesmo tempo, a FSF entende os desejos de distribuidores comerciais localizados nos Estados Unidos que obedecem às leis americanas. Eles têm o direito de escolher para quem eles distribuem cópias em particular de software livre; o exercício deste direito que não viola a GPL ao menos que eles adicionarem uma restrição contratual além daquelas permitidas pela GPL.

Posso usar um software GPL em um dispositivo que irá parar de funcionar se os clientes não continuarem pagando uma taxa de inscrição? (#SubscriptionFee)

Não. Nesse cenário, os requisitos para permanecer pagando uma taxa limitam a habilidade dos usuários executarem o programa. Isso é um requisito adicional no topo da GPL, e a licença proíbe isso.

Como eu atualizo de (L)GPLv2 para (L)GPLv3? (#v3HowToUpgrade)

Primeiro, inclua a nova versão da licença em seu pacote. Se você está usando a LGPLv3 em seu projeto, seja claro ao incluir cópias de ambas a GPLv3 e LGPLv3, já que a LGPLv3 está agora escrita como coleção de permissões adicionais sobre a GPLv3.

Segundo, substitua todos os seus avisos de licença existentes da versão 2 (geralmente no topo de cada arquivo) com o novo texto recomendado disponível em Como usar a licença GNU. Isso é mais à prova de futuro porque não mais inclui os endereços de correspondência da FSF.

Claro, qualquer texto descritivo (como em um README) que fale sobre a licença do pacote deve ser apropriadamente atualizado.

Como a GPLv3 facilita a distribuição do BitTorrent? (#BitTorrent)

Porque a GPLv2 foi escrita antes da distribuição ponto a ponto de software ser comum, isso dificulta encontrar seus requisitos quando você compartilha o código dessa forma. O melhor caminho para se certificar da conformidade quando são distribuído o código objeto da GPLv2 no BitTorrent que deveria incluir todo o fonte correspondente do mesmo torrent, que é proibitivamente caro.

A GPLv3 endereça esse problema em dois formas. Primeiro, pessoas que baixarem esse torrent e enviarem os dados para outros como parte daquele processo não precisam fazer nada. Isso é porque a seção 9 diz “Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance [da licença]”8.

Segundo, a seção 6(e) da GPLv3 é projetada para dar aos distribuidores – pessoas que inicialmente semeiam torrents – uma forma clara e direita de fornecer o fonte, dizendo aos destinatários está disponível em servidor da rede pública. Isso garante que todos que queiram pegar os fontes possam fazer isso, e isso quase não aborrece o distribuidor.

O que é tivoização? Como a GPLv3 evita isso? (#Tivoization)

Alguns dispositivos utilizam software livre que podem ser atualizados, mas são projetados de forma que os usuários não possam modificar aquele software. Há muitas formas para fazer isso; por exemplo, às vezes as somas de verificação (checksums) por hardware daquele software que está instalado e se desliga caso não encontre uma assinatura esperada. Os fabricantes obedecem a GPLv2 por darem a você o código-fonte, mas você ainda não tem a liberdade para modificar o software que você está usando. Nós chamamos essa prática de tivoização.

Quando pessoas distribuem Produtos de Usuário que incluem software sob GPLv3, a seção 6 requer que eles lhe forneçam toda informação necessária para modificar aquele software. Produtos de Usuário é um termo especialmente definido na licença; exemplos de Produtos de Usuário incluem tocadores de músicas portáteis, gravadores digitais de vídeo, e sistemas de segurança para casa.

A GPLv3 proíbe DRM? (#DRMProhibited)

Não; você pode usar o código lançado sob GPLv3 para desenvolver qualquer tipo de tecnologia de DRM que quiser. Contudo, se você fizer isso, a seção 3 diz que o sistema não irá contar como uma “proteção” tecnológica eficaz mensurada, que significa que se alguém quebrar o DRM, ele será livre para distribuir o software dele também, sem obstáculos da DMCA e leis similares.

Como de costume, a GNU GPL não restringe que pessoas façam em software, ela apenas as interrompe de restringem os outros.

Posso usar a GPL para licenciar hardware? (#GPLHardware)

Qualquer material que possa ter direito autoral pode ser licenciado sob a GPL. A GPLv3 pode também ser usada para licenciar materiais sob outras leis semelhantes à de direitos autorais, como de máscaras semicondutor. Então, por exemplo, você lança um desenho do objeto físico ou um circuito sob a GPL.

Em muitas situações, direito autoral não cobre a fabricação do desenho de hardware físico. Nessas situações, sua licença para o desenho simplesmente não pode exercer qualquer controle sobre a fabricação ou venda do hardware físico, independentemente da licença que você usar. Quando um direito autoral cobre uma fabricação de hardware, por exemplo com máscara IC, a GPL lida com esse caso de forma útil.

Eu uso uma chave pública criptográfica para assinar meu código para me certificar de sua autenticidade. É verdade que a GPLv3 me força a disponibilizar minhas chaves privadas? (#GiveUpKeys)

Não. A única vez que seria obrigado a disponibilizar chaves de assinatura é se você transmitiu um software GPL dentro de um Produto de Usuário e seu hardware verificou o software por uma assinatura criptográfica válida antes do funcionamento. Nesse caso específico, você estaria obrigado a fornecer a qualquer pessoal que seja dono de tal dono do dispositivo, sob demanda, com a chave para assinar e instalar um software modificado no dispositivo que será executado. Se cada instância do dispositivo usa uma chave diferente diferente, então você precisa dar a cada comprador apenas uma chave para aquela instância.

A GPLv3 exige que eleitores possam modificar o software sendo executado em uma urna eletrônica de votação? (#v3VotingMachine)

Não. Empresas de distribuição de dispositivos que incluem software sob a GPLv3 são no máximo obrigadas para fornecer o fonte e Informação da Instalação do software para as pessoas que possuem uma cópia do código objeto. O eleitor que usar uma urna eletrônica (como qualquer outro quiosque) não tem a posse dele, nem mesmo temporariamente, então o eleitor também não possui o software binário.

Note, contudo, que eleição é um caso muito especial. Porque só o software no computador é livre não significa que você pode confiar na computação dos votos. Nós acreditamos que computadores não podem ser confiáveis para eleição. Eleição deve ser no papel.

A GPLv3 tem uma “cláusula de retaliação de patente” (“patent retaliation clause”)? (#v3PatentRetaliation)

Na verdade, sim. A seção 10 proíbe pessoas que transmitem o software de processar judicialmente outros licenciados por patentes. Se alguém o fez mesmo assim, a seção 8 explica como eles perdem sua licença e qualquer outra licença de patente que acompanha.

Posso usar fragmentos de código-fonte coberto pela GPL dentro da documentação que está licenciada sob alguma licença que é incompatível com a GPL? (#SourceCodeInDocumentation)

Se os fragmentos são pequenos o suficiente de forma que você possa incorporá-los sob o uso justo ou leis similares, então sim. Caso contrário, não.

O início da seção 6 da GPLv3 diz que eu posso transmitir um trabalho coberto em código objeto no formato “sob os termos das seções 4 e 5” desde que eu também atenda as condições da seção 6. O que isso significa? (#v3Under4and5)

Isso significa que todas as permissões e condições que você tiver que transmitir o código-fonte também se aplicam quando você transmitir o código objeto: você pode cobrar uma taxa, você deve manter os avisos de direito autoral intactos, e assim por diante.

Minha empresa possui muitas patentes. Ao longo dos anos nós contribuímos com código para projetos sob a “GPL versão 2 ou qualquer versão posterior”, e o projeto em si só tem sido distribuído sob os mesmo termos. Se um usuário decidir pegar o código do projeto (incorporando minhas contribuições) sob a GPLv3, isso significa que eu terei automaticamente concedido licença de patente explícita da GPLv3 para aquele usuário? (#v2OrLaterPatentLicense)

Não. Quando você transmite um software GPL, você deve seguir os termos e condições de uma versão em particular da licença. Quando você faz isso, aquela versão define as obrigações que você tem. Se os usuários também elegem o uso das versões posteriores da GPL, isso meramente é uma permissão adicional que eles têm – isso não requer que você preencha os termos da versão posterior da GPL.

Não entenda que com isso você pode ameaçar a comunidade com suas patentes. Em muitos países, a distribuição de software sob a GPLv2 fornece aos destinatários uma licença de patente implícita para exercer aqueles direitos sob a GPL. Até se não o fez, qualquer um que considere aplicar suas patentes agressivamente é um inimigo da comunidade, e nós nos defenderemos contra tal ataque.

Se eu distribuo um programa proprietário que faz vinculação com uma biblioteca LGPLv3 que eu modifiquei, qual é a “contributor version” (“versão do contribuidor”) para propósito de determinar o escopo da concessão explícita da licença de patente que eu estou fazendo – é apenas a biblioteca ou a combinação como um todo? (#LGPLv3ContributorVersion)

A “versão do contribuidor” é somente sua versão da biblioteca.

A GPLv3 é compatível com a GPLv2? (#v2v3Compatibility)

Não. Muitos requisitos mudaram da GPLv2 para GPLv3, o que significa que o requisito preciso da GPLv2 não está presente na GPLv3 e vice-versa. Por exemplo, as condições de Terminação da GPLv3 são consideravelmente mais permissivas que as da GPLv2 e, portanto, diferentes das condições de Terminação da GPLv2.

Por causa dessas diferenças, as duas licenças não são compatíveis: se você tentou combinar o código lançado sob GPLv2 com o código sob a GPLv3, você violaria a seção 6 da GPLv2.

Contudo, se o código é lançado sob a GPL “versão 2 ou posterior,” que é compatível com a GPLv3 porque a GPLv3 é uma das opções que ela permite.

A GPLv2 tem um requisito sobre a entrega de informações de instalação? (#InstInfo)

A GPLv3 exige explicitamente que a redistribuição inclua Installation Information (“Informações de Instalação”) completa e necessária. A GPLv2 não usa este termo, mas requer redistribuição para incluir “scripts used to control compilation and installation of the executable scripts” (“scripts usados para controlar a compilação e a instalação do executável”) com o código-fonte completo e correspondente. Isso cobre parte, mas não tudo, daquilo que a GPLv3 chama de Installation Information. Assim, o requisito da GPLv3 sobre as informações de instalação é mais forte.

O que significa “cure” (“curar”) uma violação da GPLv3? (#Cure)

Curar uma violação significa ajustar suas práticas para obedecer com os requisitos da licença.

Os avisos de garantia e responsabilidade na GPLv3 parecem ser específicos para as leis americanas. Posso adicionar meus próprios avisos para meu próprio código? (#v3InternationalDisclaimers)

Sim. A seção 7 dá a você permissão para adicionar seus próprios avisos legais, especificamente 7(a).

Meu programa tem interfaces de usuário interativas que não são visuais. Como eu cumpro com o requisito de Avisos Legais Apropriados na GPLv3? (#NonvisualLegalNotices)

Tudo que você precisa fazer é garantir que os Avisos Legais Apropriados (Appropriate Legal Notices) estejam prontamente disponíveis para o usuário em sua interface. Por exemplo, se você escreveu uma interface de áudio, você poderia incluir um comando que leia as notas em voz alta.

Se eu der uma cópia de um programa coberto pela GPLv3 para um colega de trabalho da minha empresa, terei eu “conveyed” (“transmitido”) a cópia para aquele colega? #v3CoworkerConveying)

Enquanto vocês estiverem usando o software no seu trabalho na empresa, ao invés de pessoalmente, então a resposta é não. As cópias pertencem à empresa, não a você ou ao colega de trabalho. Essa ato de copiar é propagação, não transmissão, porque a empresa não faz cópias disponíveis para os outros.

Se eu distribuir um programa sob a GPLv3, posso fornecer uma garantia que é anulada se o usuário modificar o programa? (#v3ConditionalWarranty)

Sim. Assim como dispositivos que não necessitam garantir se os usuários modificam o software dentro deles, você não é obrigado a fornecer uma garantia que cobre todas as possibilidades se alguém empreender com um software GPLv3.

Por que vocês decidiram escrever a GNU Affero GPLv3 como uma licença separada? (#SeparateAffero)

Os primeiros rascunhos da GPLv3 permitiam aos licenciadores adicionar um requisito como Affero que publica o fonte na seção 7. Contudo, algumas empresas que desenvolvem e confiam no software livre consideram esse requisito bastante oneroso. Elas querem evitar o código com esses requisitos, e expressam preocupação sobre os custos administrativo do código de verificação para esse requisito adicional. Ao publicar a GNU Affero GPLv3 como uma licença separada, com suas disposições e a GPLv3 para permitir código sob essa licença faça vinculação uma com a outra, nós realizamos todos os objetivos originais enquanto facilitamos determinar que o código tem a publicação do requisito do fonte.

Por que vocês inventaram os novos termos “propagate” (“propagar”) e “convey” (“transmitir”) na GPLv3? (#WhyPropagateAndConvey)

O termo “distribute” (“distribuir”) usado na GPLv2 foi emprestado das leis de direitos autorais americanas. Durante muitos anos, nós aprendemos que algumas jurisdições têm usado essa palavra em suas próprias leis de direitos autorais, mas deram-lhe significados diferentes. Nós inventamos esses novos termos para deixar mais clara possível a nossa intenção, e não importa onde a licença está sendo interpretada. Eles não são usados em qualquer lei de direitos autorais do mundo, e nós fornecemos suas definições diretamente na licença.

Eu gostaria de licenciar meu código sob a GPL, mas também gostaria de deixar claro que ele não pode ser usado para fins militares e/ou comerciais. Eu posso fazer isso? (#NoMilitary)

Não, porque esses objetivos contradizem os outros. A GNU GPL é projetada especificamente para evitar a adição de restrições posteriores. A GPLv3 permite um conjunto muito limitado delas, na seção 7, mas qualquer outra restrição adicionada pode ser removida pelo usuário.

Mais genericamente, uma licença que limita quem pode usar um programa, ou para quê, não é uma licença de software livre.

“Convey” (“Transmitir”) na GPLv3 é a mesma coisa que a GPLv2 se refere por “distribute” (“distribuir”)? (#ConveyVsDistribute)

Sim, mais ou menos. Durante o curso da aplicação da GPLv2, nós aprendemos que algumas jurisdições têm usado a palavra “distribute” nas suas próprias leis de direitos autorais, mas deram-lhe significados diferentes. Nós inventamos um novo termo para deixar claro a nossa intenção e evitar qualquer problema que possa ser causado por essas diferenças.

GPLv3 fornece “making available to the public” como um exemplo de propagação. O que isso significa? Disponibilizar é uma forma de transmissão? (#v3MakingAvailable)

Um exemplo de “making available to the public” (“disponibilização ao público”) é colocar o software em um servidor web ou FTP público. Após fazer isso, algum tempo pode passar até que alguém realmente obtenha o software de você – mas porque isso pode acontecer de imediato, você precisa preencher as obrigações da GPL imediatamente. Consequentemente, nós definimos conveying (transmissão) para incluir essas atividades.

Já que a distribuição e a disponibilização ao público são formas de propagação que também são transmitidas na GPLv3, quais são os exemplos de propagação que não constituem transmissão? (#PropagationNotConveying)

Fazer cópias do software para você mesmo é a principal forma de propagação que não é transmissão. Você poderia fazer isso para instalar o software em múltiplos computadores, ou fazer backups.

Pré-vincular um binário sob a GPL com várias bibliotecas no sistema, para optimizar o seu desempenho, conta como modificação? (#Prelinking)

Não. A pré-vinculação é parte de um processo de compilação; não introduz qualquer requisitos de licença acima e além do que outros aspectos de compilação introduziriam. Se você tem permissão para vincular o programa às bibliotecas como um todo, então não tem problema pré-vinculá-lo. Se você distribuir código objeto pré-vinculado, você precisa seguir os termos da seção 6.

Se alguém instalar um software GPL em seu laptop e, então, emprestar esse laptop para um amigo sem fornecer o código-fonte do software, seria isso uma violação da GPL? (#LaptopLoan)

Não. Nas jurisdições onde nós temos investigado essas questões, esse tipo de empréstimo não deveria contar como transmissão. O dono do laptop não tem qualquer tipo de obrigações sob a GPL.

Supondo que duas empresas tentam contornar os requisitos para fornecer na Informação de Instalação por possuir uma empresa lançando software assinado, e a outra lança um Produto de Usuário que somente funcionam com um software assinado da primeira empresa. Isso é uma violação da GPLv3? (#TwoPartyTivoization)

Sim. Se duas partes tentam trabalhar juntas para passar por cima dos requisitos da GPL, ambas podem ser processadas por violação de direitos autorais. Isso é especialmente verdade já que a definição de transmissão explicitamente inclui atividades que tornariam responsável alguém por uma violação secundária.

Estou cumprindo a GPLv3 se eu ofertar binários em um servidor FTP e os fontes por um link para um repositório de código-fonte em um sistema de controle de versão, como CVS ou Subversion? (#SourceInCVS)

Isso é aceitável desde que o processo obtenção do fonte não seja oneroso ou de outra forma restritivo. Qualquer um que fizer o download de seu código objeto deve também ser capaz de obter o fonte de seu sistema de controle de versão, usando um cliente de software livre disponível publicamente. Os Usuários devem receber instruções claras e convenientes de como obter o fonte para o código objeto exato que eles baixaram – afinal das contas, eles não podem necessariamente querer o código de desenvolvimento mais atual.

Alguém que transmite o software sob a GPLv3 em um Produto do Usuário usa um atestado remoto para evitar que um usuário modifique esse software? (#RemoteAttestation)

Não. A definição de Informação de Instalação, que deve ser fornecida com o fonte quando o software é transmitido dentro de um Produto de Usuário, diz de forma explícita: “A informação deve ser suficientemente clara para que o funcionamento continuado do código objeto modificado não seja evitado ou interferido unicamente porque as modificações foram feitas”. Se o dispositivo usa uma forma de atestar remotamente, a Informação de Instalação deve fornecer alguma para que seu software modificado relate a si mesmo como legítimo.

O que “rules and protocols for communication across the network” (“regras e protocolos para comunicação através de rede”) significa na GPLv3? (#RulesProtocols)

Isso se refere às regras sobre tráfego que você pode enviar pela rede. Por exemplo, se há um limite sobre os números de requisições que você pode enviar para um servidor por dia, ou o tamanho de um arquivo que você pode atualizar, seu acesso para esses recursos deve ser definidos se você não respeitar esses limites.

Essas regras não incluem qualquer coisa que não se refira diretamente ao tráfego de dados através da rede. Por exemplo, se um servidor na rede enviou mensagens para os usuários em seus dispositivos, seu acesso à rede não poderia ser negado meramente porque você modificou o software que agora não apresenta na tela as mensagens.

Distribuidores que fornecem Informações de Instalação sob a GPLv3 não estão obrigados a fornecer “support service” (“serviço de suporte”) para o produto. Que tipo de “support service” isso significa? (#SupportService)

Isso inclui o tipo de serviço que muitos fabricantes de dispositivos fornecem para ajudar você a instalar, usar ou solucionar problemas do produto. Se o dispositivo depende de acesso a web dos serviços ou tecnologia similar para funcionar adequadamente, estes devem ainda ser disponibilizados normalmente para as versões modificadas, sujeito aos termos na seção 6 em relação ao acesso a rede.

Na GPLv3 e na AGPLv3, o que significa quando dizem “notwithstanding any other provision of this License”? (#v3Notwithstanding)

Em português “não obstante qualquer outra disposição desta Licença”, simplesmente significa que os termos a seguir prevalecem sobre qualquer outra coisa na licença que possa conflitar com eles. Por exemplo, sem esse texto, alguém poderia ter alegar que você não poderia combinar código sob GPLv3 com código sob AGPLv3 porque os requisitos adicionais da AGPL devem ser classificado como “outras restrições” sob a seção 7 de GPLv3. Esse texto deixa claro que a nossa interpretação está correta, e você pode fazer a combinação.

Esse texto somente resolve conflitos entre termos diferentes da licença. Quando não houver conflitos entre as duas condições, você deve atendê-la. Esses parágrafos não concedem a você carta branca para ignorar o resto da licença – ao invés disso, eles estão esculpindo exceções muitas limitadas.

Sob AGPLv3, quando eu modifico o Programa sob a seção 13, qual Fonte Correspondente o mesmo deve oferecer? (#AGPLv3CorrespondingSource)

“Fonte Correspondente” é definido na seção 1 da licença, e você deve fornecer o que ele lista. Então, se sua versão modificada depende de bibliotecas sob outras licenças, tal como a Licença Expat ou GPLv3, o Fonte Correspondente deve incluir essas bibliotecas (a menos que sejam Bibliotecas de Sistema). Se você modificou essas bibliotecas, você deve fornecer seu código-fonte modificado para elas.

As últimas sentenças do primeiro parágrafo da seção 13 somente significam um reforço para o que muitas pessoas teriam naturalmente presumido: embora as combinações com código sob GPLv3 sejam lidadas através de uma exceção especial na seção 13, o Fonte Correspondente deve ainda incluir o código que é combinado com o Programa dessa forma. Essa sentença não significa que você somente tem que fornecer o fonte que é GPLv3; ao invés disso significa que o tal código não é excluído da definição de Fonte Correspondente.

Na AGPLv3, o que conta como “interacting with [the software] remotely through a computer network?” (#AGPLv3InteractingRemotely)

Se um programa é expressamente projetado para aceitar requisições do usuário e enviar respostas pela rede, então encaixa-se nesse critério. Exemplos comuns de programas que falham em introduzir essa categoria em servidores de email ou web, aplicações web interativa, e servidores para jogos que são jogados online.

Se um programa não é expressamente projetado para interagir com o usuário através de uma rede, mas está funcionando em um ambiente onde isso acontece, então ele não falha nessa categoria. Por exemplo, não é necessário um aplicativo fornecer o fonte meramente porque o usuário está executando-o via SSH ou uma sessão remota X.

Como o conceito da GPLv3 de “you” se compara com a definição de “Legal Entity” na Licença Apache 2.0? (#ApacheLegalEntity)

Elas são efetivamente idênticas. A definição de “Entidade Legal” na Licença Apache 2.0 é padrão em vários tipos de acordo legal – então não fique muito surpreso se a justiça não interpretar o termo da mesma forma na ausência de uma definição explícita. Nós esperamos totalmente que o mesmo seja feito quando olharem para a GPLv3 e considerarem quem se qualifica como licenciado.

Na GPLv3, a que “the Program” se refere? A todo programa lançado sob a GPLv3? (#v3TheProgram)

O termo o “Programa” significa em particular um trabalho que é licenciado sob GPLv3 e recebeu por uma licença em particular de um licenciador ou distribuidor. O Programa é um trabalho em particular do software que você recebeu dado uma instância do licenciamento GPLv3, como você recebeu.

“Programa” não pode significar “todas os trabalhos que sempre são licenciados sob a GPLv3”; esta interpretação não faz sentido por várias razões. Nós publicamos uma análise do termo “Programa” para quem gostaria de aprender mais sobre isso.

Se eu somente fizer cópias de um programa sob GPL e executá-lo, sem distribuir ou transmiti-lo para outros, o que a licença exige de mim? (#NoDistributionRequirements)

Nada. A GPL não coloca quaisquer condições nessas circunstâncias.

Se algum software cliente de rede é lançado sob a AGPLv3, ele tem que ser capaz de fornecer o fonte para os servidores com os quais ele interage? (#AGPLv3ServerAsUser)

A AGPLv3 requer que um programa oferte o código-fonte para “todos os usuários que interajam com ele remotamente através de um computador em rede.” Isso não importa se você chama o programa de “cliente” ou “servidor”, a questão que você precisa perguntar é se há ou não uma expectativa razoável de uma pessoa interagir com o programa remotamente na rede.

Para software que é executado em um servidor proxy licenciado sob a AGPL, como eu posso ofertar o fonte para os usuários interagindo com o código? (#AGPLProxy)

Para software em um servidor proxy, você pode ofertar o fonte através de um método normal de entrega de mensagens para os usuários daquele tipo de proxy. Por exemplo, um proxy Web usaria uma página inicial. Quando os usuários iniciarem o uso do proxy, você pode direcioná-los para uma página com a oferta do fonte com alguma outra informação que queira fornecer.

A AGPL diz que você deve fazer uma oferta para “todos os usuários”. Se você sabe que a um certo usuário já foi mostrado a oferta, para a versão atual do software, você não tem que repetir isso para aquele usuário novamente.

Como as várias licenças GNU são compatíveis entre si? (#AllCompatibility)

As várias licenças GNU gozam de uma ampla compatibilidade entre si. A única vez que você pode não ser capaz de combinar o código sob duas dessas licenças é quando você quer usar o código que está somente sob uma versão antiga da licença com o código que está sob uma versão mais nova.

Abaixo tem uma matriz detalhada de compatibilidade para várias combinações das licenças GNU, para fornecer uma referência fácil de usar para casos específicos. Ela presume que alguém também escreveu algum software sob uma dessas licenças, e você deseja de alguma maneira incorporar o código daquele para um projeto que você está lançando (seja seu próprio trabalho original, seja uma versão modificada de algum outro software). Encontre a licença para seu projeto em uma coluna no topo da tabela, e a licença para outro código na linha a esquerda. A célula onde eles encontram dirá a você se essas combinações são permitidas.

Quando dizemos “copiar código”, o que queremos dizer é: você está pegando uma parte de código de um fonte, com ou sem modificação, e inserindo-o em seu próprio programa, então formalmente um trabalho baseado na primeira seção do código. “Usar uma biblioteca” significa que você não está copiando qualquer fonte diretamente, mas interagindo com ele através de links, importando, ou outro mecanismo que vincule os fontes juntos quando você compila ou executa o código.

Cada parte da matriz que dispõe sobre a GPLv3, o mesmo ocorre sobre compatibilidade é verdade para a AGPLv3 também.

Pular matriz de compatibilidade


Eu quero lançar meu código sob:
GPLv2 somente GPLv2 ou posterior GPLv3 ou posterior LGPLv2.1 somente LGPLv2.1 ou posterior LGPLv3 ou posterior
Eu quero copiar código sob: GPLv2 somente OK OK [2] NÃO OK: Combinação sob GPLv2 somente [7] OK: Combinação sob GPLv2 somente [7][2] NÃO
GPLv2 ou posterior OK [1] OK OK OK: Combinação sob GPLv2 ou posterior [7] OK: Combinação sob GPLv2 ou posterior [7] OK: Combinação sob GPLv3 [8]
GPLv3 NÃO OK: Combinação sob GPLv3 [3] OK OK: Combinação sob GPLv3 [7] OK: Combinação sob GPLv3 [7] OK: Combinação sob GPLv3 [8]
LGPLv2.1 somente OK: Transmitir código copiado sob GPLv2 [7] OK: Transmitir código copiado sob GPLv2 ou posterior [7] OK: Transmitir código copiado sob GPLv3 [7] OK OK [6] OK: Transmitir código copiado sob GPLv3 [7][8]
LGPLv2.1 ou posterior OK: Transmitir código copiado sob GPLv2 [7][1] OK: Transmitir código copiado sob GPLv2 ou posterior [7] OK: Transmitir código sob GPLv3 [7] OK [5] OK OK
LGPLv3 NÃO OK: Combinação sob GPLv3 [8][3] OK: Combinação sob GPLv3 [8] OK: Combinação sob GPLv3 [7][8] OK: Combinação sob LGPLv3 [4] OK
Eu quero usar uma biblioteca sob: GPLv2 somente OK OK [2] NÃO OK: Combinação sob GPLv2 somente [7] OK: Combinação sob GPLv2 somente [7][2] NÃO
GPLv2 ou posterior OK [1] OK OK OK: Combinação sob GPLv2 ou posterior [7] OK: Combinação sob GPLv2 ou posterior [7] OK: Combinação sob GPLv3 [8]
GPLv3 NÃO OK: Combinação sob GPLv3 [3] OK OK: Combinação sob GPLv3 [7] OK: Combinação sob GPLv3 [7] OK: Combinação sob GPLv3 [8]
LGPLv2.1 somente OK OK OK OK OK OK
LGPLv2.1 ou posterior OK OK OK OK OK OK
LGPLv3 NÃO OK: Combinação sob GPLv3 [9] OK OK OK OK

Pular notas de rodapé

1: Você deve seguir os termos da GPLv2 ao incorporar o código nesse caso. Você não pode se beneficiar dos termos das versões posteriores da GPL.

2: Enquanto você pode lançar seu projeto (ou seu trabalho original e/ou que você recebeu e modificou) sob a GPLv2 ou posterior nesse caso, note que o outro código que você está usando deve permanecer sob a GPLv2 somente. Enquanto seu projeto depende daquele código, você poderia ser capaz de atualizar a licença de seu projeto para a GPLv3 ou posterior, e o trabalho como um todo (qualquer combinação de ambos os seus projetos de os outros códigos) podem somente ser transmitido sob os termos da GPLv2.

3: Se você tem a habilidade de lançar o projeto sob a GPLv2 ou qualquer versão posterior, você pode escolher lançá-la sob a GPLv3 ou qualquer versão posterior – e depois de fazer isso, você será capaz de incorporar o código lançado sob a GPLv3.

4: Se você tem como lançar o projeto sob a LGPLv2.1 ou qualquer versão posterior, você pode escolher lançar sob a LGPLv3 ou qualquer versão posterior – e depois de fazer isso, você será capaz de incorporar o código lançado sob a LGPLv3.

5: Você deve seguir os termos da LGPLv2.1 ao incorporar o código nesse caso. Você não pode tirar vantagem dos termos em versões superiores da LGPL.

6: Se você fizer isso, enquanto o projeto contiver o código lançado sob LGPLv2.1 somente, você não será capaz de atualizar a licença do projeto para a LGPLv3 ou posterior.

7: LGPLv2.1 dá permissão para você relançar o código sob qualquer versão da GPL desde a GPLv2. Se você pode mudar o código LGPL nesse caso usando uma versão apropriada da GPL (como notado nessa tabela), você pode fazer essa combinação.

8: LGPLv3 é GPLv3 com permissões extras que você pode ignorar nesse caso.

9: Porque a GPLv2 não permite combinações com a LGPLv3, você deve transmitir o projeto sob os termos da GPLv3 nesse caso, desde que isso permitirá combinação.

Notas do tradutor (Pular):
  1. Em português, o texto do aviso de licença com permissão adicional sob a seção 7 da GPLv3 teria um texto equivalente a:

    Copyright (C) [anos] [nome do detentor do direito autoral]

    Este programa é software livre; você pode distribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; seja a versão 3 da Licença, ou (a seu critério) qualquer versão posterior.

    Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem a garantia implícita de COMERCIALIZAÇÃO OU ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a Licença Pública Geral GNU para obter mais detalhes.

    Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Se não, veja <https://www.gnu.org/licenses/>.

    Permissão adicional sob a seção 7 da GNU GPL versão 3

    Se você modificar esse Programa, ou qualquer trabalho coberto, vinculando ou combinando-o com [nome da biblioteca] (ou uma versão modificada dessa biblioteca), contendo partes cobertas pelos termos da [nome da licença da biblioteca], os licenciadores desse Programa concedem a você permissão adicional para transmitir o trabalho resultante. {Fonte Correspondente para uma forma do tipo não fonte como uma combinação deve incluir o código-fonte das partes de [nome da biblioteca] usadas como também o trabalho coberto.}

  2. Em português, o texto do aviso de licença com exceção pela GPLv2 teria um texto equivalente a:

    Copyright (C) [anos] [nome do detentor do direito autoral]

    Este programa é software livre; você pode distribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; seja a versão 2 da Licença, ou (a seu critério) qualquer versão posterior.

    Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem a garantia implícita de COMERCIALIZAÇÃO OU ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a Licença Pública Geral GNU para obter mais detalhes.

    Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Se não, veja <https://www.gnu.org/licenses/>.

    Vincular [nome do seu programa] estaticamente ou dinamicamente com outros módulos é fazer um trabalho combinado baseado em [nome do seu programa]. Assim, os termos e condições sob GNU GPL cobre todas as combinações.

    Além disso, como uma exceção especial, o detentor de direito autoral de [nome do seu programa] lhe dá a permissão para combinar [nome do seu programa] com programas de software livre ou bibliotecas que são lançadas sob a GNU LGPL e com o código incluído não padrão lançado de [nome de biblioteca] sobre a [nome da licença da biblioteca] (ou versões modificadas do código, com licença não modificadas). Você deve copiar e distribuir tal um sistema seguindo os termos da GNU GPL para [nome do seu programa] e as licenças de outro código relacionado{desde que você inclua o código-fonte dos outros códigos quando e na forma que a GNU GPL exigir distribuição do código-fonte}.

  3. Em português, o trecho da Seção 6 da GPL3 teria um texto equivalente a:

    Você não pode impor restrições adicionais ao exercício dos direitos dos destinatários aqui concedidos.

  4. Em português, o texto adicional ao aviso de licença seria equivalente a:

    Vincular ABC estaticamente ou dinamicamente com outros módulos é fazer uma combinação de trabalho baseado em ABC. Assim, os termos e condições da GNU GPL sob a combinação integral.

    Como uma exceção especial, os detentores de direitos autorais de ABC concedem a você permissão para combinar o programa ABC com programas de software livre ou bibliotecas que são lançadas sob a GNU LGPL e com módulos independentes que se comunicam com ABC unicamente através da interface ABCDEF. Você pode copiar e distribuir tal um sistema seguindo os termos da GNU GPL para ABC e as licenças dos outros códigos semelhantes, com tanto que você inclua o código-fonte dos outros códigos quando e como a GNU GPL requer a distribuição do código-fonte que você não modificou a interface ABCDEF.

    Note que pessoas que fazem versões modificadas de ABC não são obrigadas a garantir essa exceção especial para as suas versões modificadas; isso depende da escolha deles. A GNU GPL dá permissão para lançar versões modificadas sem essa exceção; essa exceção também faz possível lançar uma versão modificada que leva essa exceção. Se você modifica a interface ABCDEF, essa exceção não é aplicada em sua versão modifica de ABC, e você deve remover essa exceção quando você distribuir sua versão modificada.

  5. Em português, o texto adicional ao aviso de licença para fontes seria equivalente a:

    Como uma exceção especial, se você criar um documento que usa essa fonte, e embutir essa fonte ou parte dela em um documento, essa fonte não é, por si só, a causa do resultado do documento coberto pela GNU GPL. Essa exceção, contudo, não invalida quaisquer outras razões para o documento ser GNU GPL. Se você modificar essa fonte, você deve estender essa exceção para sua versão da fonte, mas você não é obrigado a fazê-lo. Se você não o fizer, exclua essa declaração de exceção de sua versão.

  6. Em português, o texto adicional ao aviso de licença para fontes seria equivalente a:

    Como uma exceção especial para a GPL, qualquer arquivo HTML que meramente faz chamadas de funções para esse código e, por esta razão, foi incluído por referência deverá ser considerado um trabalho separado por causa da lei de direitos autorais. Ademais, os detentores de direito autoral desse código fornecem a você permissão para combinar esse código com bibliotecas de software livre que são lançadas sob a GNU LGPL. Você pode copiar e distribuir tal sistema seguindo os termos da GNU GPL para esse código e da LGPL para bibliotecas. Se você modificar esse código, você pode estender essa exceção para sua versão do código, mas você não é obrigado a fazê-lo. Se você não deseja fazê-lo, exclua essa declaração de exceção da sua versão.

  7. Em português, o texto marcando se tratar de licença não oficial seria equivalente a:

    Esta tradução da GPL é informal, e não aprovada oficialmente pela Free Software Foundation como válida. Para ter certeza do que é permitido, veja a GPL original (em inglês).

  8. Em português, o texto da seção 9 seria equivalente a:equivalente a:

    “Propagação auxiliar de trabalho coberto ocorrendo unicamente como uma consequência do uso da transmissão ponto a ponto para receber uma cópia da mesma forma que a não aceitação obrigada [da licença]”.