Source: http://docplayer.com.br/1259742-Um-estudo-sistematico-de-licencas-de-software-livre-vanessa-cristina-sabino.html
Timestamp: 2017-08-17 00:04:18+00:00
Document Index: 109897040

Matched Legal Cases: ['artigo 2', 'artigo 29', 'artigo 8', 'artigo 87', 'artigo 423', 'artigo 392', 'artigo 11']

Um estudo sistemático de licenças de software livre. Vanessa Cristina Sabino - PDF
Um estudo sistemático de licenças de software livre. Vanessa Cristina Sabino
Download "Um estudo sistemático de licenças de software livre. Vanessa Cristina Sabino"
Victor Gabriel Alves Fartaria
1 Um estudo sistemático de licenças de software livre Vanessa Cristina Sabino Dissertação apresentada ao Instituto de Matemática e Estatística da Universidade de São Paulo para obtenção do título de Mestre em Ciências Programa: Ciência da Computação Orientador: Prof. Dr. Fabio Kon Durante o desenvolvimento deste trabalho a autora recebeu auxílio financeiro da CNPq São Paulo, Agosto de 2011
2 Um estudo sistemático de licenças de software livre Esta dissertação contém as correções e alterações sugeridas pela Comissão Julgadora durante a defesa realizada por Vanessa Cristina Sabino em 12/08/2011. O original encontra-se disponível no Instituto de Matemática e Estatística da Universidade de São Paulo. Comissão Julgadora: Prof. Dr. Fabio Kon (orientador) - IME-USP Prof. Dr. Daniel Macêdo Batista - IME-USP Prof. Dr. Juliano Souza de Albuquerque Maranhão - FD-USP
3 Agradecimentos Ao meu orientador, Prof. Dr. Fabio Kon, pela sua dedicação a este trabalho. Ao Prof. Dr. Juliano Maranhão e ao Prof. Dr. Augusto Marcacini, por me auxiliarem a compreender questões essenciais relacionadas ao Direito que foram levantadas nesta dissertação. Ao Carlos Duarte do Nascimento (Chester), pelo incentivo e ajuda valiosa na revisão deste trabalho. Aos meus colegas do IME, que me acompanharam desde a graduação, por transformarem o processo de aprendizado em uma verdadeira experiência de vida. Em particular ao grupo do Centro de Competência em Software Livre, cujas discussões foram fundamentais para servir de base para muitas das ideias expostas aqui. Aos meus pais, pelo apoio demonstrado durante essa fase. i
4 ii Meaning lies as much in the mind of the reader as in the Haiku Douglas R. Hofstadter
5 Resumo Esta dissertação tem por objetivo apresentar as licenças de software livre mais importantes, sob a luz dos seus principais aspectos jurídicos e da inter-compatibilidade, de forma a auxiliar pessoas envolvidas no desenvolvimento de software a compreender as implicações destas licenças ao fazer uso delas em seus projetos. A dissertação contextualiza as licenças, tanto no tocante à legislação brasileira, quanto no que diz respeito às restrições de licenciamento, de forma a viabilizar a análise de compatibilidade que se segue. Casos de projetos proeminentes de software livre cujo desenvolvimento foi afetado pelas implicações mencionadas ilustram a investigação, que é complementada por uma análise de ferramentas e metodologias existentes que auxiliam na gestão dos aspectos de licenciamento. Palavras-chave: software livre, licença, direito autoral, GPL, open source. iii
7 Abstract The purpose of this Master thesis is to present the most common free software licenses, regarding their main legal and inter-compatibility aspects, to help people involved in software development understand the implications of these licenses when using them in their projects. It contextualizes the licenses, both in terms of the Brazilian legislation, and regarding licensing restrictions, to make the subsequent compatibility analysis possible. Cases of free and open source software in which development was affected by the mentioned implications illustrate the research, and it is complemented by an analysis of existing tools and methodologies that assist in the management of licensing issues. Keywords: free and open source software, license, copyright, GPL. v
9 Sumário 1 Introdução Trabalhos Relacionados Breve Histórico do Software Livre O Projeto GNU e o Software Livre O Movimento Open Source Definição de Código Aberto A Importância do Software Livre Vantagens do Software Livre Desvantagens do Software Livre Perspectivas do Software Livre Aspectos Jurídicos que Embasam as Licenças de Software Histórico Direito Autoral e a Lei do Software Contratos Levantamento e Classificação de Licenças Permissivas A Licença BSD A Licença MIT/X A Licença Apache Recíprocas Totais GPL GPLv AGPL European Union Public License Recíprocas Parciais A Licença LGPL A Licença Mozilla A Licença Eclipse Quadro Comparativo vii
10 viii SUMÁRIO 5.5 Metodologia para Escolha de Licenças Compatibilidade entre Licenças Trabalhos derivados em software Compatibilidade de acordo com a categoria da licença Licenças Permissivas Licenças Recíprocas Totais Licenças Recíprocas Parciais Ferramentas e Metodologias para Análise de Licenças FOSSology Licensator OSOR.EU License Wizard Carneades Open Source License Checker Black Duck Palamida Microformatos Linux Foundation Open Compliance Program Estudos de Caso MySQL Eclipse Mono A biblioteca Qt no contexto do KDE Núcleo Linux Android Conclusão 99 Referências Bibliográficas 101
11 Capítulo 1 Introdução Programas de software livre em geral são de fácil acesso. Porém, a simples obtenção de um programa não significa que se possa fazer o que quiser com ele. As leis de direito autoral impõem várias restrições, sendo dependente de autorização prévia e expressa do autor diversas formas de utilização da obra, tais como cópia e reprodução. As licenças de software livre são contratos através dos quais os detentores dos direitos sobre um programa de computador autorizam usos de seu trabalho (dentro do que for permitido em lei) que, de outra forma, seriam exclusivos dos detentores. Além da execução do programa como usuário final, esses usos autorizados permitem que desenvolvedores possam adaptar o software para necessidades mais específicas, utilizá-lo como fundação para construção de programas mais complexos, entre diversas outras possibilidades. Elliot e Scacchi [ES08] também observam que a licença, em muitos projetos, não é apenas uma questão de regras para uso da propriedade intelectual, mas também uma afirmação sobre os princípios e valores das comunidades que os desenvolvem e uma forma de se afiliar a um movimento social maior. Nesta dissertação, é apresentado como a escolha da licença influencia a forma como o software poderá ser usado, desenvolvido e distribuído. A presente dissertação é um estudo sobre tipos de licenças de software que podem ser agrupadas em regime chamado livre. Suas principais contribuições são: reunir, em um único local, informações sobre as principais licenças de software livre; contextualizar as licenças em relação à legislação brasileira; apresentar, de forma sistemática, as vantagens e desvantagens de cada licença; analisar a compatibilidade entre licenças de software livre. O objetivo desta dissertação é auxiliar pessoas que não são especialistas em licenciamento de software a entender melhor suas implicações, tornando o texto das principais licenças mais acessível e facilitando o processo de escolha de software livre realizado por gerentes, investidores, desenvolvedores, estudantes, educadores, cientistas e demais pessoas envolvidas com software. Por outro lado, também esperamos tornar mais claro, 1
12 2 INTRODUÇÃO 1.1 para juristas, aspectos do desenvolvimento e uso de software que são relevantes para o entendimento das licenças. Cada licença será discutida de forma sistemática, traduzindo as principais ideias contidas em seus termos para uma linguagem mais familiar ao desenvolvedor de software, explicando quando seu uso é recomendado e apresentando as principais vantagens e desvantagens. Antes disso, de forma a contextualizar o estudo, será apresentado um breve histórico do movimento de software livre e suas principais características. Também serão estudados os aspectos jurídicos envolvidos no licenciamento de software, dando atenção especial às diferenças existentes entre a legislação brasileira e a americana, visando ao entendimento de como as licenças escritas nos Estados Unidos se adequam ao nosso ordenamento. Outro ponto que será discutido é a compatibilidade entre licenças, muito importante no processo de integração de diversos componentes para criação de projetos mais complexos. Serão avaliados diversos casos de uso e suas possibilidades de licenciamento. Também serão discutidas algumas ferramentas e processos que podem ajudar na tarefa de análise de compatibilidade de licenças em projetos de software. Para finalizar, veremos, na forma de estudos de caso, alguns projetos que possuem um histórico de características interessantes quanto ao licenciamento. 1.1 Trabalhos Relacionados Conforme será visto no próximo capítulo, o movimento de Software Livre é bastante recente, tendo surgido há menos de três décadas. Apesar de algumas das primeiras licenças terem sua origem em universidades, a pesquisa acadêmica sobre esse assunto era quase inexistente até muito recentemente. Porém, na última década, em particular nos últimos cinco anos, à medida que crescia a diversidade de projetos e a adoção de software livre por parte das empresas, o tema ganhou maior importância e passou a ser estudado por diversos grupos, tanto na área da computação como também no direito. Em 2009 surgiu a primeira revista científica com foco nesse tema, a International Free and Open Source Software Law Review [Int09]. Alguns trabalhos nessa área merecem destaque. O primeiro é o artigo Software Licenses in Context: The Challenge of Heterogeneously-Licensed Systems (2010) [ASA10]. Sua proposta foi de construir um modelo teórico que permita analisar sistemas em que existe mais de uma licença envolvida e entender quais são as obrigações, direitos e conflitos. Segundo os autores, nenhuma licença, tal como é, se aplica ao sistema resultante. Ao invés disso, existe uma coleção de direitos disponíveis para o sistema, e, para cada direito, existe uma obrigação correspondente que precisa ser observada. É possível que o conjunto de direitos seja vazio, e se direitos específicos são desejáveis, tais como o direito de usar o sistema e de distribuí-lo, esses direitos precisam ser considerados em cada estágio do desenvolvimento, desde o projeto até a distribuição. Os direitos específicos e obrigações são determinados pelas licenças dos componentes do sistema e pela configuração arquitetural
13 1.1 TRABALHOS RELACIONADOS 3 em que eles foram combinados. Outro trabalho relacionado é o artigo License Integration Patterns: Dealing with Licenses Mismatches in Component-Based Development (2009) [GH09], em que, assim como no artigo acima, German e Hassan tratam do problema de combinar componentes de software que estão sob licenças diferentes. Eles descrevem as licenças como um conjunto de direitos com obrigações correspondentes e analisam como duas licenças interagem no contexto de cinco tipos de conexão entre componentes. A partir daí, na Seção 4 do artigo, eles apresentam doze padrões para evitar incompatibilidade de licenças, criados a partir de um estudo empírico com 124 projetos de software livre. Também vale destacar o artigo Dangerous Liaisons: Software Combinations as Derivative Works? (2006) [Det06], em que Determann simula alguns casos de disputa legal, baseados em casos reais da jurisprudência americana, realizando uma análise jurídica profunda para determinar em quais situações um sistema deveria ser considerado como derivado de outro, afetando os direitos exclusivos devido a copyright. Por fim, temos o capítulo Software Livre e Propriedade Intelectual: Aspectos Jurídicos, Licenças e Modelos de Negócio (2011) [KLMS11], cuja seção sobre licenças é baseada nesta dissertação, que contextualiza os aspectos jurídicos do software livre na forma como ele é utilizado, ressaltando as oportunidades e dificuldades que esse modelo representa. Considerando os trabalhos relacionados que foram apresentados nesta seção, esta dissertação complementa os estudos citados ao apresentar as características das principais licenças em maiores detalhes e mostrar de que forma essas características têm impacto na compatibilidade entre licenças, além de contextualizar o estudo dentro da legislação brasileira.
14 4 INTRODUÇÃO 1.1
15 Capítulo 2 Breve Histórico do Software Livre Com o surgimento dos primeiros computadores vendidos comercialmente, a partir da década de 1950, foram criados também os primeiros programas que iriam ser executados neles. Muitas vezes ocorria uma venda casada entre hardware e software, pois os programas eram fortemente acoplados à arquitetura das máquinas em que eram executados [Was11]. Nessa época, o foco das empresas era na venda do hardware, e não eram colocadas muitas restrições no uso que as pessoas fariam do software [CK08]. Elas podiam adaptá-lo como quisessem, de forma a fazer melhor uso do harware que tinham disponível, sem sofrer repreensões. Na década de 1970 a situação começou a se modificar. Entre 1968 e 1969 a IBM anunciou o unbundling de seus produtos, separando o software do hardware, e já haviam empresas que focavam no desenvolvimento de software. Algumas dessas empresas, como a Microsoft, não estavam satisfeitas com a forma como seus programas eram muitas vezes redistribuídos sem que a empresa recebesse royalties pelas cópias. Assim, em 3 de fevereiro de 1976, Bill Gates escreveu a Open Letter to Hobbyists, que foi publicada na newsletter do Homebrew Computer Club (Figura 2.1). Nessa carta, Bill Gates afirma que o total de royalties recebidos pelo Altair BASIC era equivalente a apenas dois dólares por hora gasta em seu desenvolvimento e documentação. Ele ainda alega que a prática de compartilhamento de software não é justa e afirma que tal prática evita que software bem feito seja escrito. Assim, nessa época, começou uma mudança de postura na indústria, que passou a proibir que o software fosse copiado ou modificado. Surgiu então o que chamaremos de software fechado, caracterizado pelas restrições que são feitas à forma como ele será utilizado. Como resposta a essa nova situação, surgiram iniciativas voltadas para retomar a liberdade de melhorar e compartilhar o software. Discutiremos a seguir duas delas: o Projeto GNU, combinado com a filosofia do Software Livre, e o movimento Open Source [Tau04]. 2.1 O Projeto GNU e o Software Livre Em 27 de setembro de 1983, Richard Stallman postou uma mensagem nos newsgroups net.unix-wizards e net.usoft com o assunto new Unix implementation [Sta83]. 5
16 6 BREVE HISTÓRICO DO SOFTWARE LIVRE 2.1 Figura 2.1: Homebrew Computer Club Newsletter Volume 2, Issue 1
17 2.1 O PROJETO GNU E O SOFTWARE LIVRE 7 Nessa mensagem, ele informa que está começando a escrever um sistema compatível com UNIX 1 chamado GNU (um acrônimo recursivo para Gnu s Not Unix) e que ele será dado a todas as pessoas interessadas. Ele cita alguns componentes que seriam incluídos, tais como núcleo do sistema operacional, compilador C e editor de texto, e propõe algumas melhorias em relação aos sistemas UNIX existentes na época. Ele também explica na mensagem o motivo dele precisar escrever o GNU: segundo seus princípios, se ele gosta de um programa, então precisa compartilhá-lo com outras pessoas que também gostem dele. Para continuar usando computadores sem violar seus princípios, ele decidiu criar um conjunto suficiente de software livre para que ele pudesse prosseguir sem usar qualquer software que não fosse livre. Para finalizar a mensagem, ele pede contribuições na forma de máquinas, ajuda para escrever o software e dinheiro. No livro Open Sources [DOS99], Stallman conta um pouco mais sobre a história do projeto, cujos principais fatos serão discutidos aqui. No início de 1984, Stallman pediu demissão do seu emprego no laboratório de Inteligência Artificial do MIT, para garantir que ele teria os direitos sobre o trabalho, e começou a dedicar-se em tempo integral ao projeto. O primeiro programa criado foi o GNU Emacs, que foi disponibilizado por FTP. Porém, como naquela época muitas pessoas não tinham acesso à Internet, Stallman também começou a ganhar dinheiro vendendo cópias físicas do programa, em fita magnética, por 150 dólares. Ele considera esse negócio de distribuição de software livre um precursor das empresas que hoje distribuem o GNU/Linux. Pouco tempo depois foi desenvolvido o GCC (que na época significava GNU C Compiler, mas atualmente, com a adição de outras linguagens, é chamado de GNU Compiler Collection), que até hoje é um dos componentes mais importantes do sistema GNU. Ao longo dos anos, Stallman decidiu incorporar ao sistema software que não foi escrito pelo projeto GNU, como por exemplo o Linux e o X Window System. Isso era possível pois esses programas também eram livres. Enquanto o sistema GNU era desenvolvido, também foi sendo formado o conceito de Free Software, ou Software Livre, levando à criação da Free Software Foundation (FSF) por Stallman em Segundo sua definição, um software é livre se o usuário tem as seguintes liberdades: 1. A liberdade de executar o programa, para qualquer propósito. 2. A liberdade de modificar o programa para adaptá-lo às suas necessidades (para tornar essa liberdade efetiva na prática, é necessário ter acesso ao código fonte, já que fazer alterações em um programa sem ter o código fonte é muito difícil). 3. A liberdade de redistribuir cópias gratuitamente ou mediante pagamento. 4. A liberdade de distribuir versões modificadas do programa para que a comunidade possa se beneficiar de suas melhorias. 1 Sistema operacional multi-tarefas e multi-usuários criado em 1969 por um grupo da AT&T.
18 8 BREVE HISTÓRICO DO SOFTWARE LIVRE 2.2 Como o objetivo do projeto GNU era garantir essas liberdades para os usuários, foi criado um sistema de distribuição chamado copyleft, que buscava impedir que o software se tornasse fechado. Mais detalhes a respeito disso serão vistos na Seção 5.2, onde serão discutidas as licenças GPL. 2.2 O Movimento Open Source Segundo Eric Raymond, devido ao caráter ético e político do movimento proposto pela Free Software Foundation, muitas empresas viam o software livre como anti-capitalista e eram relutantes em adotá-lo. Observando isso, ele teve a ideia de mudar a abordagem de como seria apresentado o software livre para pessoas e empresas mais conservadoras, e criou o termo Open Source em Ao não usar a palavra free, Raymond estava não apenas evitando a confusão com gratuito, mas também tirando a conotação esquerdista e libertária do termo proposto por Stallman. Também em 1997, Bruce Perens havia escrito o Debian Free Software Guidelines, para definir o que seria aceito como software livre pela distribuição Debian do GNU/Linux, dado que havia outras licenças além daquelas propostas pela Free Software Foundation que alegavam serem livres. Então, Eric Raymond contatou Bruce Perens para discutir a ideia de Open Source e decidiram, a partir daí, adaptar o documento Debian Free Software Guidelines para formar a Open Source Definition, ou Definição de Código Aberto. Eles registraram a marca Open Source e formaram a Open Source Initiative (OSI) [DOS99]. No início de 1998 aconteceu o primeiro caso de uma empresa já consolidada no mercado abrir o código de seu software, o Netscape. Junto com Eric Raymond, os executivos da Netscape escreveram uma licença que adotava alguns princípios de copyleft, mas que permitia à Netscape continuar distribuindo versões fechadas em paralelo com o projeto de código aberto. Em seguida, Raymond publicou um pedido à comunidade intitulado Goodbye, Free Software ; Hello, Open Source, em que insistia que o termo open source era melhor do que free software e devia ser adotado. Com essa nova abordagem, que ressaltava os benefícios técnicos decorrentes da metodologia adotada pela comunidade, e tendo como exemplo a Netscape, a adoção do software livre por parte das empresas sofreu um grande impulso. Porém, a maior disseminação do software livre nesses termos não deixou Stallman satisfeito. Segundo ele, se as pessoas não introjetarem a liberdade associada ao software livre, elas voltarão a usar software fechado quando este apresentar vantagens práticas. Stallman também argumenta que a expressão código aberto tem como significado óbvio simplesmente você pode olhar para o código, o que é um critério muito mais fraco do que a definição oficial de código aberto, que pode ser vista a seguir Definição de Código Aberto Introdução
19 2.2 O MOVIMENTO OPEN SOURCE 9 Código aberto não significa apenas acesso ao código fonte. Os termos de distribuição do software de código aberto devem estar de acordo com os seguintes critérios (tradução livre da Open Source Definition publicada em www. opensource.org/docs/osd): 1. Redistribuição Livre A licença não deve restringir qualquer das partes de vender ou doar o software como um componente de uma distribuição agregada de software, contendo programas oriundos de várias fontes diferentes. A licença não deve exigir royalties ou qualquer outro tipo de pagamento pela exploração feita por terceiros. 2. Código Fonte O programa deve incluir o código fonte e deve permitir a distribuição na forma de código fonte, bem como na forma compilada. Quando alguma forma do produto não é distribuída com o código fonte, é necessário haver meios bem divulgados para obtenção do código por não mais que um custo razoável de reprodução, preferencialmente através de download pela Internet gratuitamente. O código fonte deve ser a forma preferencial pela qual um programador alterará o programa. Código fonte ofuscado deliberadamente não é permitido. Formas intermediárias, como a saída de um processador ou tradutor, não são permitidas. 3. Trabalhos Derivados A licença deve permitir modificações e trabalhos derivados e precisa permitir que eles sejam distribuídos sob os mesmos termos da licença do software original. 4. Integridade do Código Fonte do Autor A licença pode restringir a distribuição de código fonte em forma modificada somente se a licença permitir a distribuição de arquivos de patch 2 com o código fonte para o propósito de modificar o programa em tempo de compilação. A licença deve permitir explicitamente a distribuição do software compilado a partir de um código modificado. A licença pode exigir que trabalhos derivados usem um nome ou número de versão diferentes do original. 5. Sem Discriminação a Pessoas ou Grupos A licença não deve discriminar qualquer pessoa ou grupo de pessoas. 6. Sem Discriminação a Áreas de Empreendimento A licença não deve restringir qualquer pessoa a fazer uso do programa em uma área de empreendimento específica. Por exemplo, ela não pode restringir o uso do programa comercialmente ou o uso em pesquisas genéticas. 2 Patch é o nome dado a arquivos texto que mostram as diferenças entre duas versões do código fonte, permitindo que uma pessoa que tenha a versão anterior atualize-a para a nova versão de forma automatizada.
20 10 BREVE HISTÓRICO DO SOFTWARE LIVRE Distruibuição da Licença Os direitos associados ao programa devem ser gozados por todos para quem o programa é redistribuído, sem a necessidade de execução de licenças adicionais para essas partes. 8. A Licença Não Deve Ser Específica a um Produto Os direitos associados ao programa não devem depender dele ser parte de uma distribuição específica de software. Caso o programa seja extraído dessa distribuição e usado ou distribuído nos termos da licença do programa, todas as partes para as quais o programa é redistribuído devem ter os mesmos direitos que aqueles concedidos em conjunto com a distribuição de software original. 9. A Licença Não Deve Restringir Outro Software A licença não deve colocar restrições em outro software que seja distribuído junto com o software licenciado. Por exemplo, a licença não deve exigir que todos outros programas distribuídos no mesmo meio sejam software de código aberto. 10. A Licença Deve Ser Neutra às Tecnologias Nenhuma condição da licença deve ser estabelecida em uma tecnologia individual específica ou estilo de interface. Baseando-se na Definição de Código Aberto, a OSI aprova as licenças que podem ser consideradas open source. Para isso, as licenças passam por um processo público de revisão para assegurar que estão em conformidade com as normas e expectativas da comunidade. A OSI conta com uma lista de mais de 70 licenças aprovadas (www.opensource.org/ licenses) e possui um comitê para tratar do assunto de proliferação das licenças (que será apropriadamente elaborado no Capítulo 5), com o objetivo de criar mecanismos para facilitar a escolha da licença.
21 Capítulo 3 A Importância do Software Livre Estima-se que hoje haja centenas de milhões de usuários de software livre no mundo 1. Se considerarmos também usuários indiretos, que usam serviços baseados em software livre, tais como o Google, esse número provavelmente ultrapassa 1 bilhão de usuários. Neste capítulo, veremos as principais vantagens e desvantagens deste modelo, além das perspectivas de longo prazo. 3.1 Vantagens do Software Livre Apesar da Free Software Foundation e da Open Source Initiative apresentarem justificativas diferentes para o uso do software livre, nesta dissertação nos concentramos nos pontos em comum entre as duas abordagens. A principal vantagem do software livre é permitir o compartilhamento do código fonte. Como consequência desse compartilhamento, evita-se a duplicação de esforços quando mais de uma entidade está interessada no desenvolvimento de uma aplicação com funcionalidade similares, reduzindo assim o custo do desenvolvimento. Outro dividendo positivo é que o conhecimento contido no software passa a ser disponibilizado a todos. Além disso, autores como Eric Raymond [Ray01] afirmam que software livre tem condições de ter maior qualidade do que seus equivalentes fechados. Uma das justificativas para essa afirmação de Raymond é conhecida como A Lei de Linus, que diz que dados olhos suficientes, todos os bugs são superficiais. Isso significa que, com o maior número de usuários que tem acesso ao programa e seu código fonte, o software é testado melhor e os problemas existentes no código são encontrados mais rapidamente. Outro fator que contribui para a qualidade é o orgulho pessoal do desenvolvedor pois, a partir do momento que seu código pode ser lido por mais pessoas, ele tende a ser mais cuidadoso com seu trabalho. A competição também é facilitada no software livre e, assim, se o grupo original de desenvolvedores não está fazendo um bom trabalho para manter o projeto, é possível que um novo grupo faça um fork para suprir as deficiências. 1 Estimativa baseada no market-share do navegador Firefox (vide blog.mozilla.com/metrics/2010/03/ 31/mozillas-q analyst-report-state-of-the-internet e no número de usuários de Internet (vide www. internetworldstats.com/stats.htm). 11
22 12 A IMPORTÂNCIA DO SOFTWARE LIVRE 3.2 No Brasil, caracterizado por um forte mercado local, onde apenas uma pequena parte da indústria de software usa o modelo de desenvolvimento de software de prateleira (venda do produto sem customizações), o software livre pode trazer ainda mais benefícios. Ao desenvolver serviços e soluções baseadas em software livre, as empresas brasileiras podem deixar de investir no pagamento de licenças para software produzido em outro país. Dessa forma, é possível evitar a evasão de divisas, que contribui negativamente para a balança comercial brasileira. Para os usuários também é vantajoso o software livre, pois evita a dependência de um fornecedor. Isso traz tanto uma vantagem financeira, dado que normalmente é necessário pagar por novas versões do sistema quando o software é fechado, como também maior liberdade para o usuário, que pode adaptar o software para suas necessidades. É possível corrigir falhas de segurança e bugs, escrever uma documentação melhor ou contratar uma empresa que faça isso independentemente de quem seja o autor original [Web04]. Além disso, se o fornecedor original abandona o projeto, no caso do software fechado não há nada que possa ser feito para continuar o desenvolvimento do projeto, enquanto que no software livre é possível que outro grupo adote o projeto e continue a evoluir o código. 3.2 Desvantagens do Software Livre Também podemos levantar algumas desvantagens do software livre em relação a alternativas fechadas. Um dos principais motivos que leva uma empresa a optar por um software fechado quando há um similar livre disponível é a ausência de garantias e suporte desse último. As licenças de software livre em geral eximem o autor de qualquer responsabilidade tanto quanto é permitido pelas leis do local. Dessa forma, em casos em que a empresa precisa fornecer garantias aos seus clientes, ou quando a indisponibilidade de um sistema pode causar grandes prejuízos, pode ser melhor que a empresa adquira uma solução em que eventuais problemas sejam delegados a um fornecedor ou que esse tenha que indenizar a empresa. Porém, é importante deixar claro que, apesar das licenças de software livre normalmente incluírem cláusulas sobre a ausência de responsabilidades, há casos em que empresas optam por fornecer, como um serviço, garantias e suporte para um determinado software livre. Além disso, grande parte do software fechado disponível também busca em seu contrato se eximir de responsabilidades tanto quanto a legislação permite. Qualidade, reputação e imagem também são vistos como desvantagens na adoção do software livre. Quando não há uma empresa de renome por trás do software oferecido, há uma maior dificuldade em avaliar as alternativas, além de um receio de que o produto seja abandonado e deixe-se de oferecer suporte para ele. Também influi negativamente na sua imagem o fato do software estar disponível gratuitamente. Já do ponto de vista de quem produz software, optar pelo modelo aberto pode ser visto como desvantagem na medida em que a propriedade intelectual está exposta. Como os concorrentes têm fácil acesso ao código fonte, é necessário que a empresa criadora
23 3.3 PERSPECTIVAS DO SOFTWARE LIVRE 13 do software mantenha seu diferencial para garantir seu mercado a longo prazo. Caso contrário, o software pode tornar-se um commodity e as possibilidades de lucro da empresa são reduzidas [Web04]. Por outro lado, no caso de uma licença que obriga que as melhorias sejam disponibilizadas como software livre, é mais difícil que uma nova empresa com um modelo de negócio que usa o mesmo software adquira vantagem competitiva sobre outra que já está consolidada no mercado, pois qualquer diferencial no produto pode ser prontamente absorvido pela empresa líder [DOS99]. 3.3 Perspectivas do Software Livre O modelo do software livre possui características bastante interessantes para o mercado de Tecnologia da Informação. Há uma certa ambiguidade na relação entre clientes, empresas e a comunidade de desenvolvimento de software, permitindo novos modelos de negócio. Os consumidores têm a possibilidade de também contribuir para o bem coletivo, agregando valor. Porém, a parcela de consumidores que realmente contribui é muito pequena, e os demais requerem uma quantidade desproporcional de serviços de suporte, que não são facilmente escaláveis. A competição com produtos fechados, que já arrecadam dinheiro com a venda do software, empurra para baixo o valor do suporte, dificultando a situação das empresas que têm como modelo a venda de serviços baseados em software livre [Web04]. Em um estudo da Forrester [For08] sobre o uso de software livre e seu impacto na indústria de software, foram observadas as seguintes tendências: crescimento da adoção de software livre pelo usuário final, na forma de ferramentas de produtividade e aplicações de negócio; crescimento de provedores de serviço e centros de competência para prover suporte comercial para produtos de software livre; diferenças na adoção de software livre de acordo com ramo de atividade, com fábricas adotando fortemente o software livre em sua infraestrutura enquanto serviços financeiros usam o software livre em aplicações de mais alto nível; uso de software livre em aplicações de missão crítica, serviços e produtos; altos índices de satisfação em relação a custo e qualidade do software livre; diversidade de critérios como motivadores para adoção de software livre, destacando custo, independência, flexibilidade e inovação; adoção, por parte das empresas, das boas práticas e princípios da comunidade de software livre. Hoje em dia o software livre aparece na maior parte das projeções sobre o futuro do software. Porém, é importante ressaltar que cada novo paradigma que surge na indús-
24 14 A IMPORTÂNCIA DO SOFTWARE LIVRE 3.3 tria altera substancialmente as perspectivas, tornando muito difícil prever como estará o mercado de software daqui a alguns anos [CK08].
25 Capítulo 4 Aspectos Jurídicos que Embasam as Licenças de Software O software pode ser visto como uma criação recente da humanidade se comparado a outros tipos de obras, tais como literatura e música. Seu surgimento levou à necessidade de um tratamento jurídico especial desse novo fato devido ao seu caráter único. Uma das grandes dificuldades encontradas é o enquadramento do software em alguma das categorias jurídicas pré-existentes, como afirma Augusto Marcacini [MdC04]: O software é algo que não guarda paralelo exato com bens materiais ou imateriais até então conhecidos. Não é propriamente uma expressão da personalidade humana, mas um conjunto de instruções técnicas que devem levar o computador a produzir um resultado desejado. Mas também não se aproxima, por exemplo, de um projeto para construir um avião a jato, pois o software é um conjunto de instruções que funciona e é útil por si, enquanto as plantas e desenhos de um avião não transportam nada nem ninguém para lugar algum. Seria, então, muito mais uma mercadoria, uma res, do que um projeto apenas; entretanto, na sua essência, o software é um conjunto de ideias que estão gravadas em meio eletrônico e podem ser infinitamente copiadas o que o distancia, pela imaterialidade, da noção de res, aproximando-se, neste aspecto prático, dos direitos de natureza autoral, de uma criação intelectual, e aqui voltamos para o começo do parágrafo, numa espiral infinita. No final da década de 1970, um grupo conhecido como Advisory Group of Governamental Experts on the Protection of Computer Programs levantou alguns dos motivos pelos quais a proteção do software era desejável [ds08]: investimento e tempo necessários para desenvolvimento de software; probabilidade de futuros desenvolvimentos; necessidade de se criar um incentivo para a divulgação; utilização da proteção como base para o comércio; 15
26 16 ASPECTOS JURÍDICOS QUE EMBASAM AS LICENÇAS DE SOFTWARE 4.0 vulnerabilidade do software. O direito prevê diversas formas de proteção da solução técnica que faz parte do software, considerada como uma propriedade imaterial [ds08]. As principais delas são: patentes; direito autoral; segredo comercial e industrial; desenho industrial; marcas; repressão à concorrência desleal. Para entendermos as leis relacionadas ao software, alguns pontos valem ser discutidos. O primeiro é a diferença entre software e programa de computador. O programa de computador está definido no primeiro artigo da Lei n o 9.609/98: Programa de computador é a expressão de um conjunto organizado de instruções em linguagem natural ou codificada, contida em suporte físico de qualquer natureza, de emprego necessário em máquinas automáticas de tratamento da informação, dispositivos, instrumentos ou equipamentos periféricos, baseados em técnica digital ou análoga, para fazê-los funcionar de modo e para fins determinados. Já a definição de software não é muito precisa, mas engloba outros elementos que estão relacionados ao programa, tais como sua documentação (tanto a técnica como a destinada ao usuário final) [Bar03]. As leis 7.232/84 e 9.609/98 tratam esses conceitos de forma distinta: a primeira trabalha estes elementos e o programa de computador como uma só entidade, o software, cuja importação, exportação, produção, operação e comercialização são definidos como atividades sujeitas a ela; enquanto que a última define e regula o programa de computador e só cita os elementos acessórios quando eles se fazem necessários como, por exemplo, o código fonte e documentação na ocorrência de transferência de tecnologia. Outro ponto importante é a diferença entre código fonte e código binário. Há consenso em relação ao código fonte constituir obra literária na acepção geral adotada pelo Direito do Autor [ds08]. Já o código binário constitui uma evolução substancial da versão em código fonte e não se pode afirmar diretamente que a cópia ou reprodução do binário é indiretamente uma cópia do código fonte [Cor95]. Há razões técnicas que tornam não razoável uma análise de copyright de código binário, pois ele é na maioria das vezes produzido pelo próprio computador e não é legível para humanos. Enquanto os usuários adotam uma visão lógica que diferencia apenas um software instalado de um software em execução, durante o funcionamento de um programa de computador ocorrem diversas atividades na camada física que viabilizam esse processo. Considerando um computador convencional, as instruções que definem o programa, quando não estão em uso, residem normalmente no disco rígido ou alguma outra mídia não volátil,
27 como um CD-ROM ou pendrive. A partir do momento que esse programa é executado, essas instruções precisam ser copiadas para a memória RAM e, no momento em que estão em uso, vão também para o cache do processador, que pode ser único ou estar dividido em diversos níveis (em geral L1 e L2). O cache é a memória de acesso mais rápido, seguido pela RAM, que é muitas vezes mais rápida que um disco rígido. Por outro lado, as memórias mais rápidas são também muito mais caras e por isso estão disponíveis em menor quantidade no computador. Isso significa que não seria viável ter um programa inteiro copiado no cache, e, dependendo de seu tamanho e de quantas tarefas estão sendo executadas simultaneamente, não é possível nem mesmo ter todas as instruções e dados sendo usados pelo computador ao mesmo tempo na memória RAM. Por esse motivo, há a necessidade de copiar os bits constantemente de uma memória para outra. O arranjo físico desses bits é gerenciado em grande parte pelo sistema operacional e está baseado principalmente em questões técnicas de eficiência de armazenamento, tendo pouca relação com o funcionamento lógico do programa. Como essas atividades são ditadas por requisitos de funcionalidade externa (armazenamento e eficiência de execução) e não têm ligação a aplicações de software específicas e a expressão de criatividade contida nelas, esses eventos de cópia de trechos e combinação que ocorre no nível físico são considerados irrelevantes para fins de análise dentro da lei de copyright. Ao invés disso, o foco é na perspectiva lógica, que vê programas como trabalhos separados baseando-se em como eles são escritos por seus autores e percebidos pelos usuários [Det06]. Outro fator a ser considerado é que o software algumas vezes é visto como prestação de serviços. Tivemos, por exemplo, um caso que chegou ao Supremo Tribunal Federal para resolver a ambiguidade entre mercadoria e serviço do ponto de vista da tributação do software. A decisão do tribunal determinou que se o contrato é de cessão ou envolve desenvolvimento de produto para o atendimento de determinada necessidade do contratante, caracteriza-se a prestação de serviços, sujeito ao pagamento do ISS; se consiste em licença para aquisição de direitos sobre software comercializado em larga escala e de maneira uniforme, há circulação de mercadorias, incidindo o ICMS [damj05]. Na prática, os programas de computador são regidos judicialmente no Brasil da seguinte forma: em primeiro lugar vale a Lei 9.609/98, conhecida como Lei do Software; em casos em que essa é omissa, aplica-se a Lei 9.610/98, do Direito Autoral; e sendo essa última ainda insuficiente, recorre-se ao Código Civil [FJL + 05]. É importante ressaltar, contudo, que ainda há muito pouco trabalho sobre licenciamento de software livre por parte dos juristas brasileiros. Também há poucos casos de jurisprudência. Segundo Marcacini [Mar10], é muito difícil julgar qualquer causa sem compreender o fato do qual decorre o direito das partes, e para muitos juristas faltam conhecimentos específicos sobre as questões que envolvem o software. Portanto, a doutrina ainda precisa ser melhor desenvolvida, para fortalecer a teoria jurídica sobre esse assunto.
28 18 ASPECTOS JURÍDICOS QUE EMBASAM AS LICENÇAS DE SOFTWARE Histórico No início da década de 1980, surgiam no Brasil os primeiros estudos sobre proteção do software. Segundo Marcacini [Mar10], se atuar em um caso concreto já se mostra tarefa difícil, mais complexa ainda é a situação do estudioso de Direito quando se depara com a necessidade de propor novas leis sobre esses fatos tecnológicos, ou construir bases doutrinárias a seu respeito. Fatores tais como o benefício da sociedade no longo prazo e a necessidade de compatibilização com a legislação que já cobria outras criações tecnológicas foram levantados em um relatório do escritório brasileiro de patentes em 1983 [ds88], com a proposta de guiar as decisões que seriam tomadas a seguir. Em 1984, foi apresentado um anteprojeto de lei (260/84), redigido pela Secretaria Especial de Informática (SEI), Instituto Nacional da Propriedade Industrial (INPI) e Conselho Nacional de Direito Autoral (CNDA), que propunha proteção mediante registro do software. Nesse projeto, já estava previsto que semelhanças decorrentes da característica dos equipamentos, observância de padrões técnicos ou normas legais, emprego de algoritmos em domínio público, modelos matemáticos ou processos formais não constituiria violação dos direitos exclusivos concedidos, desde que se tratasse de uma criação independente [ds08]. No final da década de 1980, através da Lei n o 7.646/87 (posteriormente revogada pela Lei n o 9.609/98), foi escolhido o direito autoral como regime de proteção do software, alinhando-se à estratégia adotada nos Estados Unidos. Não foi apenas o Brasil que estava discutindo a legislação para proteção do software nessa época. Desde a década de 1970, a OMPI (Organização Mundial da Propriedade Intelectual) promoveu estudos a esse respeito, escrevendo um documento intitulado Disposições Tipo para a Proteção do Software em que sugeria um regime jurídico especial para esse objeto. Porém, na década de 1980 vários países produtores de software começaram a adotar o direito autoral, justificado pela necessidade de encontrar uma proteção rápida e eficaz que fosse aceitável no plano internacional [ds08]. Apesar do direito autoral ter sido adotado amplamente, a maioria dos países adotou também regras específicas para lidar com software, diferenciando-o de outras obras intelectuais. Na União Européia, por exemplo, a Diretiva 91/250/CEE, de 1991, aproximou o direito autoral europeu (baseado no conceito francês de droit d auteur) do direito da common law (onde temos o copyright) adotado nos países anglo-saxônicos, principalmente no quesito originalidade. Na década de 1990, surgiu também o acordo TRIPS (Trade Related Aspects of Intellectual Property Rights), que deveria ser seguido por todos os países membros da OMC. Um dos dispositivos desse acordo estabelecia que programas de computador, em código fonte ou objeto, são protegidos como obra literária pela Convenção de Berna. Até então, vários países consideravam os programas como obra de arte aplicada, cuja proteção é inferior, inclusive em relação à duração de tempo em que a obra fica protegida.
29 4.2 DIREITO AUTORAL E A LEI DO SOFTWARE Direito Autoral e a Lei do Software Segundo Ronaldo Lemos em Falcão et al. [FJL + 05], O licenciamento em software livre nada mais é do que uma modalidade de exercício dos direitos do autor através de uma licença jurídica. As leis relacionadas à proteção autoral devem buscar balancear os interesses do detentor dos direitos com os do público, beneficiando toda a sociedade no longo prazo [Ben06]. No caso de programas de computador, cuja finalidade muitas vezes é meramente utilitária, a funcionalidade e valor econômico costumam ser mais importantes do que um valor cultural associado e, assim, para estabelecer equilíbrio, as leis devem buscar maior liberdade de concorrência. O direito autoral cobre formas de expressão que são objetos concretos, e não ideias. Ou seja, ele está protegendo a implementação específica que aparece no código fonte, mas não a funcionalidade do software, que é algo mais abstrato. Na proposta da lei autoral australiana de 1984, por exemplo, havia um comentário para esclarecer essa diferença em sua definição de programa de computador, afirmando: expression... of a set of instructions is intended to make it clear that it is not an abstract idea, algorithm or mathematical principle which is protected, but rather a particular expression of that abstraction. Assim, o direito de exclusividade do autor é exercido essencialmente sobre o código do programa, daí seu enquadramento como obra literária [ds08]. Da mesma forma que o algoritmo não é protegido pelo direito autoral, estruturas de dados também não o são. Ideias normalmente são cobertas por patentes, porém, pela lei brasileira (9.279/96), não se considera um programa de computador como invenção ou modelo de utilidade. O software, como conjunto específico de instruções, é protegido automaticamente pelo direito autoral, sendo seu registro perante o INPI facultativo. Através do direito autoral é impedida a mera duplicação da codificação, o que permite coibir legalmente a pirataria de programas de computador. Apesar de ser reconhecida a proteção do programa de computador sob o direito autoral, a legislação inclui ressalvas que diferenciam software de outras obras. A Lei n o 9.609/98 trata dessas diferenças, a principal delas estando no inciso 1 do artigo 2 o, que afirma que não se aplicam ao programa de computador as disposições relativas aos direitos morais. Dessa forma, direitos relacionados à personalidade do autor, tais como retirar a obra do mercado ou proibir usos que já haviam sido autorizados, não valem para software, porém outros direitos, tais como reivindicar a autoria e vetar reproduções, continuam válidos. Uma dificuldade encontrada na interpretação de licenças de software livre no Brasil é que a maioria delas foi escrita tendo como base a lei de copyright americana, que determina direitos exclusivos apenas em casos mais específicos, incluindo o direito de copiar, distribuir e adaptar o trabalho. Na legislação brasileira isso funciona de forma diferente: qualquer tipo de uso tem que estar expressamente autorizado. O artigo 29 o da
30 20 ASPECTOS JURÍDICOS QUE EMBASAM AS LICENÇAS DE SOFTWARE 4.3 Lei n o 9.610/98 lista diversos casos de uso como sendo protegidos e finaliza com quaisquer outras modalidades de utilização existentes ou que venham a ser inventadas. A atual lei de direito autoral lista, no artigo 8 o, os elementos que não são objeto de proteção como direitos autorais, entre os quais estão ideias, procedimentos normativos, sistemas, métodos, esquemas, planos etc. Por outro lado, há elementos não literais de uma obra que podem ser protegidos pelo direito autoral. Nos Estados Unidos, há alguns casos de jurisprudência em que semelhanças em um desses elementos não-literais, no caso o look and feel 1 de aplicativos, levou as companhias envolvidas aos tribunais com reivindicações baseadas nos direitos autorais. Observou-se que o argumento geral das grandes empresas era a favor de ampliar a proteção dos direitos autorais, enquanto cientistas da computação, juristas e grupos de usuários sustentavam a posição contrária. Tal fato evidencia que o direito de autor tem servido muito mais ao interesse comercial das grandes empresas do que ao progresso da ciência ou ao interesse dos usuários, comprometendo assim o delicado equilíbrio entre o interesse público e o privado [ds08]. Os casos mais famosos nesse sentido foram da Apple vs. Microsoft [Uni94], em 1995, e Lotus vs. Borland [Uni96], em Em ambos a decisão final da corte foi em favor do réu, não repreendendo o uso de conceitos similares na interface do usuário. A aplicação do conceito de elementos não-literais a programas de computador não é direta, porém, em geral, está relacionada à estrutura e organização do mesmo. Por exemplo, pela Lei n o 9.610/98, artigo 87 o, o titular do direito patrimonial sobre uma base de dados terá direito exclusivo a respeito da forma de expressão da estrutura da referida base. Por outro lado, a Lei de Software brasileira não trata da estrutura de programas, e ainda dispõe que a semelhança entre dois programas decorrente das características funcionais da aplicação dos mesmos não constitui infração [ds08]. Um programa é cópia de outro quando implementa os procedimentos lógicos do programa preexistente de maneira substancialmente similar [Fri88]. Pesquisadores como José de Oliveira Ascensão ainda afirmam que para haver originalidade no modo de expressão, do ponto de vista autoral, é necessário que haja mais de uma alternativa para implementar determinado processo [doa97]. Porém, a forma de implementação de determinada funcionalidade nem sempre é evidente e, assim, muitas vezes é necessário criatividade e originalidade mesmo quando não há formas alternativas. Outro ponto de nossa legislação que vale ser ressaltado é a proteção da interface lógica dos programas. No capítulo da Lei do Software relativo às limitações aos direitos de autor, contempla-se a hipótese de integração de um programa a um sistema aplicativo ou operacional, tecnicamente indispensável às necessidades do usuário, desde que, como dispõem o Art. 7 o, IV, da Lei n o 7.646/87 e o Art. 6 o da Lei n o 9.609/98, mantendo suas características essenciais e para uso exclusivo de quem a promoveu. Dessa forma, foram contempladas as exigências de interoperabilidade de dois programas que determinam certas restrições aos direitos exclusivos do titular do direito de autor [ds08]. 1 Termo que denota características de design e comportamento de uma interface gráfica.
31 4.3 CONTRATOS Contratos A Lei n o 9.609/98 determina no Art. 9 o que o uso de programa de computador no País será objeto de contrato de licença. Ao contrário da cessão dos direitos patrimoniais, em que todos os direitos seriam transmitidos ao cessionário, através do uso de licenças é dada apenas uma autorização de uso. Segundo a teoria contratual, o contrato é como um acordo realizado pela livre vontade de partes formalmente iguais para realização de trocas de bens ou serviços mediada por um valor equalizante [FJL + 05]. Conforme afirma Augusto Marcacini, a vontade livremente manifestada em um contrato também é considerada lei entre as partes, merecendo destaque que, no campo dos direitos patrimoniais e obrigacionais, a liberdade de contratação é regra: o que a lei não proíbe, o que não afronta a ordem pública, é permitido [MdC04]. Caio Pereira ainda define contrato como um acordo de vontades, na conformidade da lei, e com a finalidade de adquirir, resguardar, transferir, conservar, modificar ou extinguir direitos [dsp09]. Os contratos podem ser divididos entre típicos e atípicos. Os contratos típicos são aqueles cujas regras disciplinares estão determinadas nas leis. Por exemplo, o Código Civil lista contratos como os de compra, venda e locação, além de outros. Os contratos que não estão regulamentados, envolvendo novas relações jurídicas, são chamados de atípicos. Como esses contratos não estão estabelecidos nas leis, é necessário detalhar todos os direitos e obrigações que os compõem. Na hipótese de um contrato desse tipo ser levado a julgamento, cabe ao juiz interpretar o contrato utilizando os princípios legais relativos ao contrato típico mais próximo e aos contratos em geral. Quando o conteúdo de um contrato é determinado unilateralmente por um dos contratantes, cabendo à outra parte apenas aderir aos termos estabelecidos, o chamamos de contrato de adesão. O Código Civil determina, no artigo 423 o, que eventuais cláusulas ambíguas ou contraditórias sejam interpretadas da maneira mais favorável à parte que não teve o poder de influir no conteúdo do contrato [dsp09]. Licenças de software livre são classificadas por alguns como contratos benéficos, também chamados de gratuitos ou desinteressados. Esse tipo de contrato é caracterizado por apenas uma das partes auferir os benefícios, enquanto a outra sofre os encargos. Em relação a licenças recíprocas (vide Capítulo 5), pode-se ainda afirmar que são contratos benéficos com estipulações em favor de terceiro [FJL + 05], pois não é pré-determinado quem serão as demais pessoas que se beneficiarão da licença no momento em que o contrato é firmado entre duas partes. Essa classificação não é unânime por parte dos juristas e é importante ressaltar que uma licença de software livre não caracteriza uma abdicação de direitos. Em licenças de software livre, o licenciante não escolhe como parte contratante apenas um indivíduo ou uma empresa. O contrato fica aberto a qualquer membro da comunidade. Alguns autores consideram as licenças de software livre recíprocas como contratos de licenciamento em rede:
32 22 ASPECTOS JURÍDICOS QUE EMBASAM AS LICENÇAS DE SOFTWARE 4.3 Dizemos que é um contrato de licenciamento em rede porque institucionaliza uma livre reprodução de inovações e de uso do software em cadeia, através do mecanismo que faz com que o licenciado de hoje seja ipso facto o licenciante de amanhã. Num certo sentido, este contrato é uma espécie de contrato viral, na medida em que a cláusula do compartilhamento obrigatório inocula-se em todos os contratos, os fazendo partícipes de uma mesma situação [FJL + 05]. Nesse caso, o usuário que decide usar o software livre já compromete-se a compartilhar, sob a mesma licença, trabalhos futuros criados com base nesse software antes mesmo deles serem criados, exercendo, a priori, as decisões que a ele caberia pelo direito de autor. Isso, segundo os mesmos autores [FJL + 05], pode parecer ir contra os fundamentos do direito e a liberdade de quem está recebendo o software, porém, não há restrições jurídicas que impeçam esse tipo de contrato. No software livre, considera-se que todas as partes são interdependentes, agindo ao mesmo tempo como contratantes e contratados. Mais ainda: Esta cláusula de compartilhamento obrigatório exerce pelo menos duas funções. Primeiro, transforma o contrato de licenciamento numa oferta erga omnes 2, constituindo então uma rede aberta. Segundo, não estabelece nenhum impedimento para que, no futuro, este ou aquele licenciado entre na rede, sejam impedimentos com base em status jurídico, sejam com viés econômico, de sexo, raça, nacionalidade ou de qualquer outro tipo. Não cria nenhuma escassez legal, como no contrato liberal clássico. A única exigência necessária é o mero ato de adotar o software livre, por seu uso ou por sua recriação [FJL + 05]. Outra característica das licenças de software livre é a uniformidade contratual, dado que um mesmo tipo de contrato, com as mesmas cláusulas, é aplicado a todas as pessoas envolvidas. Assim, qualquer aperfeiçoamento do software que for disponibilizado pode beneficiar igualmente a todas as partes. Sendo as licenças de software livre um negócio jurídico não-oneroso, a responsabilidade civil fica restrita às hipóteses em que houve dolo. Essa regra está no artigo 392 o do Código Civil, que afirma: nos contratos benéficos, responde por simples culpa o contratante, a quem o contrato proveite, e por dolo aquele a quem não favoreça. Nos contratos onerosos, responde cada uma das partes por culpa, salvo exceções previstas em lei. Segundo Marcacini, a própria definição de fraqueza do consumidor, principal justificativa para a existência da legislação protetiva, inexiste aqui. Ninguém é obrigado ou compelido de qualquer forma a aceitar a licença e utilizar o software livre [MdC04]. Por outro lado, nem sempre é caracterizada uma relação de consumo no software livre e muitas vezes uma organização encontra-se no meio da cadeia produtiva. O estudo da FGV ainda argumenta que uma relação de consumo pressupõe dois pólos de interesse, o consumidor e o fonecedor, enquanto licenças de software livre são sociais e colaborativas, envolvendo interesses de toda a coletividade, e não uma relação bipolar [FJL + 05]. Porém, isso não 2 Do latim contra todos, isto é, com efeito legal sobre todos os envolvidos.
33 4.3 CONTRATOS 23 impede que outras relações jurídicas sejam estabelecidas a partir do software livre, sendo possível que essas relações incorram em outras obrigações e responsabilidades. No próximo capítulo estudaremos em maiores detalhes as principais licenças de software livre.
34 24 ASPECTOS JURÍDICOS QUE EMBASAM AS LICENÇAS DE SOFTWARE 4.3
35 Capítulo 5 Levantamento e Classificação de Licenças O detentor dos direitos patrimoniais sobre um software, quando decide torná-lo livre, deve escolher os termos em que seu trabalho será distribuído, ou seja, os direitos que ele estará transferindo para as outras pessoas e quais as condições que serão aplicadas. O documento que formaliza esse ato é a licença, que normalmente é distribuída junto com o código fonte. Há inúmeras possibilidades para redigir o texto de uma licença de software livre, mas a prática mais comum e recomendada é reaproveitar alguma das licenças já consolidadas na comunidade. Dessa forma, reduz-se a proliferação de licenças, que deve ser evitada pois gera trabalho adicional para os usuários, uma vez que torna-se necessário para eles estudar os termos de cada nova licença presente no software que irão utilizar. No portal SourceForge [Sou08], que hospeda um grande número de projetos de software livre, ao criar um novo projeto são apresentadas oito opções de licenças, que são as mais utilizadas naquele repositório, além da opção de domínio público: GNU General Public License (GPL) GNU Library or Lesser General Public License (LGPL) BSD License MIT License Apache License V2.0 Artistic License Mozilla Public License 1.1 (MPL 1.1) Academic Free License (AFL) Além disso, no final da página, há um ponteiro para visualização de todas as licenças disponíveis, contendo, em maio de 2010, 64 opções. Há ainda a possibilidade do usuário incluir sua própria licença. 25
36 26 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.1 A Open Source Initiative (OSI) mantém uma lista de licenças aprovadas de acordo com a definição de código aberto (vide Seção 2.2), organizadas em diversas categorias, além de uma lista de licenças atualmente buscando aprovação. A OSI também está trabalhando com um comitê de proliferação de licenças, buscando separar e dar destaque a algumas licenças que passarão a ser recomendadas, em oposição às meramente aprovadas. Vamos discutir neste capítulo algumas das principais licenças utilizadas atualmente pela comunidade, buscando seu melhor entendimento e aplicação. Considerando que uma das questões mais importantes é a compatibilidade entre licenças, que será discutida no Capítulo 6, vamos separar as licenças descritas aqui em três categorias, de acordo com a presença de termos que impõem restrições de licenciamento na redistribuição do trabalho ou criação de trabalhos derivados. Em relação a essa característica, as licenças são consideradas permissivas ou recíprocas, sendo que entre as recíprocas devemos ainda considerar que algumas forçam que seja mantida a mesma licença em mais casos do que outras e, assim, as dividimos entre recíprocas parciais, que também recebem a denominação de copyleft fraco, e recíprocas totais. 5.1 Permissivas As licenças permissivas, também chamadas de licenças acadêmicas por alguns autores, como Rosen [Ros05] e Laurent [Lau04], em referência às origens das licenças BSD (University of California, Berkeley) e MIT (Massachusetts Institute of Technology), impõem poucas restrições às pessoas que obtém o produto. Muitas vezes, tais licenças são usadas em projetos de pesquisa de universidades, que servem como prova de conceito de alguma tecnologia que poderá ser explorada comercialmente no futuro. No caso das licenças permissivas, não são colocadas grandes restrições ao licenciamento de trabalhos derivados, estes podendo inclusive serem distribuídos sob uma licença fechada. Nesta seção serão discutidas as licenças BSD, MIT e Apache. Licenças permissivas são uma ótima opção para projetos cujo objetivo é atingir o maior número de pessoas, não importando se na forma de software livre ou de software fechado. Temos vários exemplos desse modelo no BSD Unix, que continha o software de TCP/IP que hoje é usado na maior parte das implementações desse protocolo, incluindo a da Microsoft [Lau04]. Outro exemplo é o BIND(Berkeley Internet Name Daemon), cuja implementação livre é até hoje usada nos principais servidores de DNS, apesar de haver também várias implementações fechadas. Segundo Laurent [Lau04], há bilhões de dólares em atividade econômica associada apenas com a pilha de software para Internet originalmente liberada sob a licença BSD. Alguns argumentam que o uso desse tipo de licença não incentiva o modelo de software livre, pois empresas se aproveitam da comunidade para desenvolver software que será fechado. Porém, quando são usadas licenças permissivas, em geral os autores estão cientes dessa possibilidade e não vêem isso como um problema. Um caso conhecido em que, de fato, os autores se arrependeram da licença que adotaram é o do Kerberos, desenvolvido
37 5.1 PERMISSIVAS 27 no MIT, que posteriormente foi adotado pela Microsoft, que desenvolveu extensões fechadas [Lau04]. Mas o mais provável, caso a licença não permitisse isso, seria que a Microsoft adotasse algum outro sistema de segurança e o Kerberos não se tornaria tão popular. Por outro lado, em alguns casos, não é necessário que haja restrições na licença para garantir a continuidade do modelo de desenvolvimento aberto, como no exemplo do servidor Apache. Duas características explicam o domínio do servidor Web livre no mercado, segundo Laurent [Lau04]: a marca forte, cujo uso é protegido pela própria licença do Apache, e a importância da conformidade com os padrões em sistemas Web, o que evita a disseminação de extensões fechadas A Licença BSD A primeira licença que iremos estudar é a BSD (www.opensource.org/licenses/bsd-license. php), que foi a primeira licença de software livre escrita e até hoje é uma das mais usadas. Criada originalmente pela Universidade da Califórnia em Berkeley para seu sistema operacional derivado do UNIX chamado Berkeley Software Distribution, a licença BSD é usada como modelo por uma ampla gama de software licenciado de modo permissivo. Os principais motivos que levaram a licença BSD a ser tão difundida são a simplicidade de seu texto e o fato dela ter sido inicialmente adotada por um projeto amplamente disseminado, o que criou um ciclo virtuoso em que mais comunidades a adotaram, tornando-a ainda mais reconhecida. Porém, originalmente, a licença BSD possuia uma cláusula que determinava que todo material de divulgação relacionado ao software precisava conter uma sentença que dizia este produto inclui software desenvolvido pela Universidade da California, Berkeley e seus contribuidores. Tal cláusula, que ficou conhecida como cláusula de propaganda da licença BSD, não causava muito problema quando era usada apenas no seu contexto original, porém, à medida que outras pessoas e organizações passaram a adotar também a licença BSD, essa cláusula era adaptada para conter outros nomes, e assim surgiam projetos que integravam diversos componentes e determinavam uma longa lista de frases a serem incluídas quando se falava sobre o projeto. Como consequência, em 1999, tal cláusula foi removida, originando a Licença BSD Simplificada, também conhecida como Nova Licença BSD ou Versão de 3 cláusulas da Licença BSD. Assim, na versão atualmente utilizada da licença BSD, temos os seguintes termos, apresentados em tradução realizada pela Escola de Direito da Fundação Getúlio Vargas [FGV]:
38 28 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.1 Direitos autorais (C) <ANO>, <TITULAR> Todos os direitos reservados. A redistribuição e o uso nas formas binária e código fonte, com ou sem modificações, são permitidos contanto que as condições abaixo sejam cumpridas: - Redistribuições do código fonte devem conter o aviso de direitos autorais acima, esta lista de condições e o aviso de isenção de garantias subsequente. - Redistribuições na forma binária devem reproduzir o aviso de direitos autorais acima, esta lista de condições e o aviso de isenção de garantias subsequente na documentação e/ou materiais fornecidos com a distribuição. - Nem o nome da <ORGANIZAÇÃO> nem o nome dos contribuidores podem ser utilizados para endossar ou promover produtos derivados deste software sem autorização prévia específica por escrito. Apesar dessa licença utilizar uma linguagem leiga, cujos termos não necessariamente correspondem aos termos encontrados nas leis que visam proteger o autor do software, através deste documento o detentor dos direitos autorais permite que outras pessoas usem, modifiquem e distribuam o software. As únicas exigências são que o nome do autor original não seja utilizado em trabalhos derivados sem permissão, de forma a proteger sua reputação, dado que o autor pode não ter relação alguma com as modificações realizadas, e no caso de redistribuição do código fonte ou binário, modificado ou não, é necessário que seja mencionado o copyright original e os termos da licença. É importante ressaltar que a exigência de reproduzir a lista de condições para redistribuição e o aviso legal de isenção de garantias não significa que o trabalho sendo redistribuído precisa estar sob a mesma licença. Além disso, é possível redistribuir o binário sem fornecer o código fonte. Basta que conste na documentação que foi utilizado o software em questão, e que ele foi licenciado nos termos descritos acima. No final da licença há o aviso legal sobre garantias e responsabilidades apresentado a seguir, que visa proteger o autor de ser processado judicialmente por qualquer insatisfação causada em consequência do uso do software. Porém, tal termo está subordinado às leis locais, que no caso brasileiro, dependendo da relação estabelecida entre o fornecedor e o cliente, não permitem a distribuição de um software com ausência total de garantias.
39 5.1 PERMISSIVAS 29 ESTE SOFTWARE É FORNECIDO PELOS DETENTORES DE DIREITOS AUTORAIS E CONTRIBUIDORES "COMO ESTÁ", ISENTO DE GARANTIAS EXPRESSAS OU TÁCITAS, INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS IMPLÍCITAS DE COMERCIABILIDADE OU DE ADEQUAÇÃO A FINALIDADES ESPECÍFICAS. EM NENHUMA HIPÓTESE OS TITULARES DE DIREITOS AUTORAIS E CONTRIBUIDORES SERÃO RESPONSÁVEIS POR QUAISQUER DANOS, DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQUENTES, (INCLUINDO, SEM LIMITAÇÃO, FORNECIMENTO DE BENS OU SERVIÇOS SUBSTITUTOS, PERDA DE USO OU DADOS, LUCROS CESSANTES, OU INTERRUPÇÃO DE ATIVIDADES), CAUSADOS POR QUAISQUER MOTIVOS E SOB QUALQUER TEORIA DE RESPONSABILIDADE, SEJA RESPONSABILIDADE CONTRATUAL, RESTRITA, ILÍCITO CIVIL, OU QUALQUER OUTRA, COMO DECORRÊNCIA DE USO DESTE SOFTWARE, MESMO QUE HOUVESSEM SIDO AVISADOS DA POSSIBILIDADE DE TAIS DANOS. Por fim, há também versões da licença BSD que removem a terceira condição de redistribuição, relacionada ao autor não endossar trabalhos derivados, restando apenas as duas cláusulas que requerem a reprodução do copyright e das condições na redistribuição. Vantagens e Desvantagens Uma das principais desvantagens da licença BSD é a quantidade de variantes existentes, pois não fica imediatamente claro para o usuário sob quais termos um software está sendo licenciado quando a única informação que ele recebe é que está sob a licença BSD. Sempre é necessário verificar com mais cuidado, no texto da licença, se o software em questão está licenciado pela BSD original, a simplificada, ou a versão sem endosso. Outra desvantagem, do ponto de vista jurídico, é que seus termos são um tanto vagos e não são mapeados diretamente aos termos utilizados no licenciamento de software, havendo um maior esforço de interpretação da licença para demostrar que, de fato, a maioria dos direitos em geral restritos ao autor estão sendo transferidos para o licenciado. Por outro lado, temos como vantagens a simplicidade da licença e sua ampla adoção, que facilitam seu entendimento pelo público geral. Portanto, o exposto acima faz da licença BSD uma excelente escolha para projetos em que não há uma preocupação a respeito de quais serão os termos que outras pessoas usarão ao redistribuir o trabalho original ou derivado A Licença MIT/X11 A Licença MIT (www.opensource.org/licenses/mit-license.php), criada pelo Massachusetts Institute of Technology, é também conhecida como Licença X11 ou X, por ter sido redigida originalmente para o X Window System, desenvolvido no MIT em Essa também é uma licença permissiva e é considerada equivalente à BSD Simplificada sem a cláusula de endosso. Porém, seu texto é bem mais explícito ao tratar dos direitos que estão sendo transferidos, afirmando que qualquer pessoa que obtém uma cópia do software e seus arquivos de documentação associados pode lidar com eles sem restrição,
40 30 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.1 incluindo sem limitação os direitos a usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do software. As condições impostas para tanto são apenas manter o aviso de copyright e uma cópia da licença em todas as cópias ou porções substanciais do software. Para finalizar, a licença contém uma cláusula sobre a ausência de garantias e responsabilidades bastante similar à da licença BSD, protegendo os detentores do direito autoral de qualquer processo judicial relacionado ao software. Nesta licença ainda é excluída explicitamente a responsabilidade de não infração, que pode ocorrer, por exemplo, quando alguém usa a propriedade intelectual de outra pessoa sem a devida autorização. Isso cobre casos em que o autor do software, acidentalmente ou não, tenha utilizado algum material protegido sob direitos autorais ou uma ideia patenteada sem obter uma licença para tanto, o que pode gerar um processo contra o autor, os distribuidores do software e até seus usuários. Porém, assim como explicado anteriormente, a ausência de responsabilidades tem sua validade limitada pelas leis vigentes. Vantagens e Desvantagens Essa licença é a recomendada pela Free Software Foundation quando se busca uma licença permissiva, pois é bastante conhecida e, ao contrário da BSD, não possui múltiplas versões com cláusulas que podem gerar dificuldades adicionais, tais como a cláusula de propaganda da BSD que pode gerar incompatibilidades com outras licenças. Outra vantagem da MIT em relação à BSD é a maior clareza dos seus termos ao declarar explicitamente que é permitido, por exemplo, sublicenciar ou vender cópias do software, que são direitos apenas implícitos na BSD. A questão do sublicenciamento é bastante importante quando o software será usado como parte de um trabalho coletivo ou derivado que será distribuído sob outra licença, o que é bastante comum nas práticas de software livre. Se não houver o direito de sublicenciamento, então apenas o detentor do direito autoral pode conceder a licença. Desta forma, o usuário de um trabalho derivado precisa obter a licença tanto do autor desse trabalho como também dos detentores dos direitos de cada componente que faz parte dele, sendo necessário identificar todos esses componentes e pessoas envolvidas, aumentando a dificuldade, os riscos e a complexidade jurídicica. Por outro lado, quando é permitido o sublicenciamento, a pessoa que está emitindo a licença, que valerá para todos os componentes de seu software, fica responsável por analisar os termos de cada um dos componentes e certificar-se da compatibilidade entre as licenças. Assim, ao chegar no usuário final, o potencial de problemas é restrito a uma única licença A Licença Apache A Licença Apache está atualmente na versão 2.0 (www.apache.org/licenses/license-2. 0.html) e é usada por um dos projetos mais conhecidos de software livre, o servidor web Apache, assim como pela maior parte dos outros projetos pertencentes à Fundação Apache, além de projetos independentes que optaram por usar essa licença.
41 5.1 PERMISSIVAS 31 A Apache também é uma licença permissiva e, na versão 1.1, seu texto era bastante similar ao da BSD, porém dando ênfase à proteção da marca Apache. Havia uma cláusula similar à cláusula de propaganda da BSD, obrigando que a documentação ou o software, quando redistribuídos, incluíssem a frase este produto inclui software desenvolvido pela Apache Software Foundation (http://www.apache.org/) e duas cláusulas proibindo o uso do nome Apache sem permissão escrita prévia, tanto para endossar trabalhos derivados, como na BSD, como também o uso como parte do nome do produto. Em 2004, a licença foi totalmente reescrita e seu texto ficou bem mais longo e complexo, detalhando melhor os direitos concedidos, conforme será visto a seguir. A primeira parte da licença contém as definições de palavras-chave que serão utilizadas no decorrer da licença, tais como Entidade Legal, Você e Fonte. A definição de fonte é mais abrangente do que a convencional, englobando não apenas o código fonte do software, como também fonte da documentação e arquivos de configuração. Analogamente, na definição de Objeto é incluída qualquer coisa resultante da transformação ou tradução mecânica da fonte, tais como código compilado, documentação e conversões para outros tipos de mídia. Essa licença também define o que é um Trabalho Derivado, excluindo explicitamente trabalhos que se mantém separados do trabalho sendo licenciado ou que meramente são ligados à sua interface. A próxima definição é a de Contribuição, que é uma modificação do trabalho original que será incluída no trabalho em futuras versões. Conforme será visto adiante, a contribuição também pode ser licenciada nos termos da licença Apache. As próximas duas cláusulas se referem à concessão de direitos autorais e patentes. Quanto aos direitos autorais, é dada uma licença irrevogável para reproduzir, preparar trabalhos derivados, mostrar publicamente, sublicenciar e distribuir o trabalho e seus derivados, na forma de fonte ou objeto, sujeitos aos termos e condições da licença. Essa cláusula enumera os direitos protegidos pela lei que estão sendo concedidos à pessoa que obtém a licença, adaptando-se bem às leis americanas, porém, no caso brasileiro, em que a legislação de direitos autorais é muito mais restritiva, acaba deixando de lado alguns direitos fundamentais, como por exemplo o do uso do software (vide Seção 4.2). Nesse sentido, a versão anterior da licença era mais apropriada, já que definia os direitos concedidos de forma mais abrangente e incluia em seu texto a permissão de uso. Em seguida, são colocadas algumas condições para a redistribuição do trabalho e seus derivados: incluir uma cópia da licença; incluir avisos em todos os arquivos modificados informando sobre a alteração; manter na fonte de trabalhos derivados todos os avisos de direitos autorais, patentes e marcas registradas que são pertinentes; se o trabalho incluir um arquivo texto chamado NOTICE, então qualquer trabalho derivado distribuído deve incluir os avisos pertinentes contidos nesse arquivo da forma como está detalhado na licença.
42 32 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.1 A cláusula sobre redistribuição termina informando explicitamente que é permitido licenciar sob outros termos qualquer modificação ou trabalho derivado, desde que o uso, reprodução e distribuição do trabalho que foi obtido pela licença Apache sejam respeitados. Já no caso das contribuições enviadas, que são tratadas na cláusula seguinte, fica determinado que é usada a princípio a licença Apache, sem termos ou condições adicionais, a não ser que tenha sido realizado algum outro tipo de acordo de licenciamento entre as partes. As quatro últimas cláusulas tratam das marcas registradas e responsabilidades legais. A licença limita-se a permitir o uso da marca apenas para uso razoável, para descrever a origem do trabalho e reproduzir o arquivo NOTICE. Dessa forma, fica implícito que não é permitido associar os nomes relacionados ao trabalho original a trabalhos derivados além do necessário para indicar a origem do trabalho. A cláusula que informa sobre a falta de garantias e responsabilidade é bastante similar àquela vista anteriormente na licença MIT, assim como a cláusula sobre limitações da responsabilidade. A principal diferença está na proteção das contribuições e seus responsáveis, já que esses também são tratados no resto da licença. Na última cláusula, é tratada a questão de outras entidades aceitarem prover garantias ou serem responsabilizadas pelo trabalho, o que é permitido desde que fique claro que a entidade está agindo por conta própria e ficará totalmente responsável pelas ações judiciais decorrentes, de forma a não interferir nas proteções judiciais que recaem sobre os contribuidores de acordo com as cláusulas anteriores da licença. Após apresentar os termos levantados, a licença inclui instruções sobre como aplicála a um trabalho. Como o texto da licença é bastante extenso, tornando inconveniente apresentá-lo por completo em cada arquivo do código fonte do projeto, a licença dá como diretriz que seja usado o seguinte texto: Copyright [ano] [nome do detentor dos direitos] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Vantagens e Desvantagens A principal vantagem da licença Apache é seus termos estarem definidos de forma mais precisa, deixando menos margem a interpretações conflitantes com os interesses dos envolvidos. Em particular, o fato da licença Apache deixar explícito na cláusula 4, so-
43 5.2 RECÍPROCAS TOTAIS 33 bre redistribuição, que é permitido o uso de outra licença, é visto como uma vantagem sobre as licenças BSD ou MIT quanto à clareza de sua característica permissiva. Outra vantagem dessa licença é o tratamento de contribuições, tornando mais transparente a incorporação das mesmas em um projeto quando é feita a opção por manter a mesma forma de licenciamento. Para formalizar o processo de contribuições, foi criado o Apache Contributor License Agreement, que transmite à Apache Software Foundation todos os direitos de propriedade intelectual necessários para que a fundação possa licenciar a contribuição, o que é importante caso ocorra a decisão de uma alteração de licença do projeto. O fato do texto da licença ser mais extenso do que os vistos anteriormente é visto como uma desvantagem por algumas pessoas, porém o ganho em precisão compensa esse fato. O principal problema da Apache é o fato de sua compatibilidade com a GPL 2.0 ser discutível, dado que ela impõe algumas restrições que não estão no texto dessa versão da GPL, conforme será visto no próximo capítulo. 5.2 Recíprocas Totais As licenças recíprocas totais determinam que qualquer trabalho derivado precisa ser distribuído sob os mesmos termos da licença original. Isso também é chamado de copyleft, um termo criado pela Free Software Foundation (www.gnu.org/copyleft). A ideia do copyleft é dar permissão a todos para executar, copiar, modificar e distribuir versões modificadas do programa, mas impedir que sejam adicionadas restrições a essas versões redistribuídas. Tal ideia visa fortalecer o software livre como um todo, não permitindo que melhorias do software sejam retiradas do alcance da comunidade. O resultado esperado é que a quantidade de software livre aumente cada vez mais, beneficiando todos os envolvidos na cadeia produtiva do software livre. Além disso, a reciprocidade contribui para manter a compatibilidade entre diversas versões de um determinado sistema, dado que quando novas funcionalidades são feitas de forma fechada, fica mais difícil replicá-las nas diferentes versões. Por outro lado, tal abordagem também sofre críticas de dentro da comunidade, pois o software licenciado nesse modelo acaba ficando de certa forma isolado dos demais devido a incompatibilidades nas licenças. Na prática, software licenciado sob o modelo permissivo, em geral, pode ser incorporado em software licenciado como recíproco, já que licenças permissivas permitem a redistribuição sob outros termos, inclusive os de licenças recíprocas. Porém, o inverso não é verdadeiro e, assim, software sob licenças recíprocas não pode ser utilizado em vários projetos de software livre que usam alguma outra licença. A licença que deu origem à ideia de copyleft foi a General Public License, ou GPL (www.gnu.org/licenses/gpl.html), da Free Software Foundation. Nesta seção, iremos estudar algumas de suas versões: a GPL 2.0, GPLv3 e Affero General Public License, ou AGPL.
44 34 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS GPL 2.0 A licença GPL (www.gnu.org/licenses/old-licenses/gpl-1.0.html) foi escrita em 1989 pela Free Software Foundation. Dois anos depois, em junho de 1991, foram feitas pequenas modificações na licença, gerando a versão 2.0 (www.gnu.org/licenses/old-licenses/gpl-2.0. html). Essa versão manteve-se até 2007, quando saiu a GPLv3, que será vista na próxima seção. Devido ao grande número de projetos licenciados sob a versão 2.0, incluiremos também nesta dissertação uma descrição detalhada dessa versão da licença. A GPL 2.0 inclui um preâmbulo que explica os princípios que baseiam a licença e seus principais objetivos. Apesar desse preâmbulo ser bastante citado nas discussões, seu valor jurídico é menor que o restante da licença, pois, por não fazer fazer parte dos termos e condições, suas palavras não precisam ser obedecidas por quem obtém a licença do software. Seu objetivo é apenas melhorar o entendimento da GPL em seu contexto [Ros05], explicando o que é software livre e a importância do copyleft. Porém, ele pode ser utilizado para esclarecer a vontade do licenciante no caso de uma disputa ir a tribunal. A licença GPL pode ser copiada, distribuída e aplicada a qualquer software cujo detentor dos direitos autorais assim desejar. Porém, diferentemente de outras licenças, como a BSD, o texto da GPL não pode ser alterado sem autorização, ou seja, não é permitido que seja feita uma licença derivada dela. No final da licença, há uma explicação sobre como aplicá-la a um trabalho. A Free Software Foundation recomenda que o autor que usa a GPL permita que seu trabalho esteja licenciado sob a versão mais recente da licença ou qualquer versão posterior, de forma que quando surgir uma nova versão o usuário da licença possa escolher qual das versões irá utilizar. Dessa forma, evita-se incompatibilidade entre programas mais antigos e mais novos que optaram por utilizar a GPL. Porém, muitas pessoas preferem ter maior controle sobre quais são os termos em que seu software está licenciado e, assim, não deixam aberto para qualquer versão posterior criada pela Free Software Foundation. Um exemplo importante dessa escolha é o núcleo do Linux, que será estudado no Capítulo 8. A Seção 0 da GPL define ao que ela se aplica, que seria qualquer programa ou trabalho que contém uma nota afirmando que está sendo licenciado pelos termos da GPL. No resto da licença, esse objeto a ser licenciado é chamado simplesmente de Programa. A Seção 0 também afirma que a licença se aplica a qualquer trabalho derivado segundo a lei de direitos autorais, porém, ao mesmo tempo, define trabalho derivado como um trabalho contendo o Programa ou parte dele, literalmente ou com modificações e/ou traduzido para outra língua [Fre91]. Essa definição dada a trabalho derivado difere tanto da legislação americana quanto da brasileira. Segundo a definição dada pela GPL, mesmo trabalhos coletivos são considerados como trabalhos derivados (vide Seção 4.2). Tal definição é de importância fundamental na aplicação da GPL e motivo de muita controvérsia quanto à necessidade de reciprocidade em diferentes usos do software, como será visto no Capítulo 6. Além disso, a Seção 0 afirma que o ato de executar o Programa não é restrito de nenhuma forma e que a saída do Programa só está coberta pela licença se seu conteúdo
45 5.2 RECÍPROCAS TOTAIS 35 constituir de alguma forma um trabalho baseado no Programa, o que só aconteceria em casos muito específicos como, por exemplo, um programa que gera outro programa que é uma versão modificada de si mesmo. A próxima seção trata da cópia e distribuição do código fonte do Programa, que pode ser realizada desde que sejam mantidos os avisos sobre o copyright, a ausência de garantias e a licença. Nesta seção também é explicado que é permitido exigir pagamento pelo ato de transferir uma cópia ou por garantias adicionais que a pessoa decida oferecer, o que permite o uso do software em um modelo de negócio comercial. A Seção 2 da GPL é uma das mais importantes da licença, pois é onde estão definidas as regras relacionadas ao conceito de copyleft, tratando das modificações do programa e sua distribuição. As condições impostas, além daquelas que foram estipuladas para a distribuição segundo o parágrafo anterior, são as seguintes: 1. Os arquivos modificados precisam conter avisos proeminentes afirmando que os arquivos foram modificados e a data da modificação, de forma a proteger a reputação do autor do trabalho original, que não fica sujeito a problemas causados pela versão modificada. 2. Qualquer trabalho distribuído ou publicado que contém totalmente ou em parte o programa ou que é derivado do mesmo ou parte dele precisa ser licenciado como um todo sem nenhuma cobrança sob os termos desta licença, o que significa que qualquer trabalho derivado está sujeito às mesmas restrições da GPL. Ou seja, não é possível que um trabalho derivado de um programa GPL seja licenciado de modo fechado, permissivo, ou qualquer outra licença, a não ser que haja a opção de utilizar outra licença para esse programa. 3. Se o programa modificado normalmente lê comandos de forma interativa quando é executado, é necessário que, quando ele começar a ser executado normalmente, ele imprima ou mostre um aviso incluindo as informações sobre copyright e ausência de garantias (ou que uma garantia é provida pela pessoa) e que os usuários podem redistribuir o programa sob essas condições e informando o usuário como ver uma cópia dessa licença. É feita uma exceção: tal regra não precisa ser seguida no caso do programa original ser interativo mas não mostrar tal aviso. O objetivo deste item é garantir que as pessoas sejam informadas sobre seus direitos, de forma que possam utilizá-los da forma como lhes for mais interessante. Em seguida, a Seção 2 define, com maiores detalhes, as condições em que são aplicadas as regras acima. Porém, as explicações dadas ainda estão longe de esclarecer de fato o impacto da reciprocidade em todos os casos de combinação de um programa GPL com o de outra licença. É explicado que as condições acima aplicam-se ao trabalho modificado como um todo. Os termos da GPL não precisam ser aplicados a seções que possam ser consideradas independentes e não derivadas do programa, desde que tais seções sejam distribuídas como trabalhos separados. Por outro lado, quando essas mesmas seções são
46 36 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.2 distribuídas como parte de um todo que é um trabalho baseado no programa, então a distribuição desse todo precisa estar nos termos da GPL, cujas permissões se estendem para cada uma de suas partes independentemente de quem a escreveu. Isso implica que, para que o trabalho possa ser distribuído, cada uma de suas partes precisa no mínimo ter uma licença que seja compatível com os termos da GPL, já que no trabalho como um todo tais condições serão aplicadas. A Seção 10 da GPL, que será vista adiante, provê algumas instruções sobre o que fazer quando as licenças não são compatíveis. Para evitar tal problema, alguns projetos optam por distribuir as partes necessárias para seu funcionamento separadamente, instruindo os usuários sobre como obter as partes que não estão sob seu controle e que poderiam gerar problemas de licença. É explicado que a intenção da Seção 2 não é reivindicar direitos de trabalhos criados inteiramente por outra pessoa, mas sim exercer o direito de controlar a distribuição de trabalhos derivados ou coletivos baseados no Programa. A seção finaliza afirmando que a mera agregação do Programa com outro trabalho que não seja baseado no Programa em um volume de armazenamento ou midia de distribuição não faz com que o outro trabalho caia no escopo desta licença [Fre91]. Isso evita interpretações que exageram nas consequências da licença, limitando seu alcance a trabalhos que realmente são de alguma forma derivados do programa licenciado sob a GPL. Na próxima seção, é determinado que para distribuir o Programa é necessário que ele esteja acompanhado do código fonte. Como alternativa a distribuir o código junto com o Programa, é permitido que seja feita uma oferta por escrito, com validade mínima de três anos, de que o código seja enviado mediante uma cobrança não superior ao custo de fazer tal distribuição física. Uma pessoa que recebeu tal oferta pode reutilizá-la em sua própria redistribuição do código, desde que seja para fins não-comerciais. Em geral, a não ser que o código seja muito grande, quem distribui programas GPL já disponibiliza o código junto com o binário, de forma a evitar trabalho e custos adicionais tanto para quem está distribuindo como para quem está recebendo. Essa seção define, ainda, que o código fonte inclui todos os módulos que ele contém, arquivos de definição de interface associados e scripts usados para controlar a compilação e instalação do executável. Porém, não é necessário incluir partes que normalmente são distribuídas junto com o sistema operacional em que o executável será usado, como por exemplo bibliotecas que já são parte da linguagem de programação utilizada. Essa seção finaliza explicando que se a distribuição do executável é realizada oferecendo acesso para que ele seja copiado de um determinado lugar, então disponibilizar o código fonte no mesmo lugar conta como distribuição do código fonte. As Seções 4 a 6 da GPL continuam a explicação sobre o funcionamento da licença. Na seção 4 observa-se que, diferentemente de outras licenças que baseiam-se principalmente nas leis de contrato, na GPL há um foco também nas leis de direitos autorais. É ressaltado o fato de que somente a licença permite que uma pessoa modifique ou distribua o Programa ou um derivado dele, já que tais atos são protegidos pelas leis de direito autoral. Se a pessoa não seguir os termos da licença, ela perde esses direitos. Porém,
47 5.2 RECÍPROCAS TOTAIS 37 isso não interfere nas pessoas que receberam os direitos a partir daquela que infringiu a licença. Essas pessoas continuam usufruindo dos diretos desde que elas próprias não cometam nenhuma infração. Isso acontece porque, conforme explicado na Seção 6, quando o Programa é redistribuído, o recipiente automaticamente recebe uma licença do detentor original dos direitos, e não do seu intermediário. Essa relação criada diretamente entre quem emite a licença e quem a recebe permite também que o detentor dos direitos entre com um processo contra qualquer infrator da licença. A Seção 6 também afirma que você não poderá impor aos recebedores qualquer outra restrição ao exercício dos direitos então adquiridos. Na prática, essa limitação causa a incompatibilidade de outras licenças com a GPL. Devido a isso e às regras impostas na Seção 2, software distribuído sob licenças que têm alguma restrição diferente não pode ser combinado com software GPL. As Seções 7 e 8 da GPL continuam afirmando a necessidade de seguir os termos da licença, mesmo na presença de outros fatores geradores de outras obrigações, como, por exemplo, decisões judiciais e leis locais. Segundo o que está escrito, caso não seja possível cumprir tais obrigações e ao mesmo tempo seguir os termos da licença, então não é permitido que o Programa seja distribuído. Essa parte da licença é de particular importância em países onde há patentes de software, pois no caso de uma decisão judicial tentar incluir restrições relacionadas a um software, ele não pode mais ser distribuído sob a GPL. Dessa forma, o modelo de software livre proposto pela GPL é garantido mesmo na presença de decisões judiciais que iriam contra seus princípios. É permitido ao detentor dos direitos autorais limitar a distribuição do seu Programa onde as leis locais apresentam conflitos com a GPL. Porém, na prática, existe a possibilidade do juiz determinar que o programa pode ser distribuído ao mesmo tempo em que invalida algum termo da licença. Para finalizar, as duas seções seguintes da GPL provêem mais duas explicações sobre a licença. A Seção 9 trata da política de versões das licenças publicadas pela Free Software Foundation e as possibilidades de escolha da versão da licença conforme o modo como a licença é especificada no Programa. Já a Seção 10 recomenda que, se uma pessoa quer incorporar o Programa em algum outro software livre cujas condições de distribuição sejam diferentes, então ela deve entrar em contato com o autor para tentar conseguir uma permissão específica. A licença termina de forma similar às licenças vistas anteriormente, com duas seções declarando a ausência de garantias. Após os termos e condições, a licença inclui, ainda, alguns parágrafos sobre como aplicá-la ao programa a ser licenciado. A Free Software Foundation informa que bibliotecas que poderão ser incorporadas em software fechado podem utilizar a licença LGPL, que será vista adiante. Segundo ela, a GPL não permite que um programa coberto por essa licença seja ligado a software licenciado sob outros termos, conforme explicado na Seção 2. Tal interpretação é causa de controvérsia entre os estudiosos de licenças de software livre. Lawrence Rosen, em seu livro Open Source Licensing [Ros05], uma das principais fontes sobre o assunto, argumenta que o uso de uma biblioteca cria um trabalho coletivo e não um trabalho derivado. Portanto, não seria necessário licenciar o software como LGPL quando distribuído separadamente. Como essa interpretação é contrária à da Free Software Foundation, autora da GPL,
48 38 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.2 Rosen afirma ainda que o que importa é o entendimento entre o detentor dos direitos e a pessoa que recebe a licença. Ele cita como exemplo o caso do núcleo do Linux, em que seu autor, Linus Torvalds, apesar de usar a GPL, adotou a política de que software que é apenas combinado com o Linux não está sujeito aos termos da GPL, independentemente de como esse software é ligado ou distribuído. Dessa forma é possível a existência de módulos fechados no Linux. Porém, considerando a legislação brasileira, essa interpretação de trabalho coletivo não é cabível. Vantagens e Desvantagens A GPL é bastante conhecida, sendo a licença mais utilizada em projetos de software livre. Porém, é considerada uma licença de alta complexidade. Apesar da intenção da licença estar clara em seu preâmbulo, há vários detalhes presentes em seus termos que dificultam sua interpretação em casos específicos. A GPL é recomendada para projetos que buscam seu crescimento através de contribuições de terceiros, dado que melhorias feitas ao software devem manter-se livres para poderem ser distribuídas. A GPL também é usada frequentemente em um modelo comercial de licenciamento duplo. Neste caso, a empresa provê o software sob a licença GPL, obtendo os benefícios relacionados ao software livre, mas ao mesmo tempo disponibiliza o software sob alguma outra licença que não imponha as restrições presentes na GPL. Dessa forma, empresas que têm interesse em usar o software de forma fechada podem obter uma licença alternativa, normalmente pagando um determinado valor para a empresa detentora dos direitos sobre o software. Por fim, antes de adotar a GPL, é muito importante verificar sua compatibilidade com licenças de outros programas que serão utilizados no projeto, de forma a evitar ter que reescrever partes do software que já estariam disponíveis sob alguma outra licença GPLv3 A mais nova versão da GPL (www.gnu.org/licenses/gpl-3.0-standalone.html), lançada em 29 de junho de 2007, após um longo período de discussão e revisão pública, foi criada para evitar algumas situações consideradas indesejáveis pela Free Software Foundation. Além disso, algumas partes foram reescritas de forma a adaptar a licença a novas formas de compartilhamento de programa e a deixá-la mais adequada para legislações em que os termos originais poderiam ser interpretados de forma diferente da esperada pela Free Software Foundation. Também foram realizadas alterações para facilitar a compatibilidade com outras licenças, em particular a Apache 2.0 [Laf07]. A seguir serão discutidas as principais mudanças. Um dos principais motivos para mudar para a GPLv3, segundo seus criadores, é evitar o fenômeno conhecido como tivoização (em referência ao aparelho TiVo, que funciona como um gravador digital de vídeos). O TiVo inclui software derivado do Linux, licenciado sob a GPL 2.0. O código está disponível e pode ser modificado, porém, tais modificações
49 5.2 RECÍPROCAS TOTAIS 39 não podem ser utilizadas no aparelho TiVo, pois ele faz uma checagem da assinatura digital do software e executa apenas as versões permitidas pelo fabricante. Essa questão de assinaturas digitais foi bastante controversa durante a elaboração da GPLv3, pois ao mesmo tempo em que as assinaturas restringem a liberdade dos usuários, defendida pela Free Software Foundation, elas são uma ferramenta importante para implementar segurança em alguns sistemas. A estratégia para impedir a tivoização é exigir que o fabricante provenha toda informação necessária para instalar versões modificadas do software no aparelho. Essa informação pode ir desde instruções básicas até chaves de autorização que possam ser necessárias. Porém, tal exigência é limitada a aparelhos considerados produtos de usuário. Assim, alguns equipamentos de uso específico, como por exemplo máquinas de votação, estariam isentos da necessidade de reduzir seu nível de segurança para se adequar a licença. A definição de produtos de usuário está presente na Seção 6 da licença, sobre distribuição na forma binária: A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. Outra mudança na GPLv3 é relacionada a mecanismos de DRM, ou Digital Rights Management (www.defectivebydesign.org). É sabido que a Free Software Foundation é contra o uso de DRM, porém, optou por não impedir que software livre fosse utilizado para implementá-lo, já que isso estaria limitando a liberdade dos usuários. Como alternativa, decidiram atacar o tratado de copyright da World Intellectual Property Organization (WIPO), adotado em 20 de dezembro de Nesse tratado, o artigo 11, sobre obrigações a respeito de medidas tecnológicas, afirma que os países devem adotar medidas legais para reprimir tentativas de burlar sistemas tecnológicos de proteção usados por autores para restringir atos que não são autorizados, em conexão com o exercício de seus direitos de acordo com esse tratado ou a Convenção de Berna. A solução presente na GPLv3 é afirmar que qualquer trabalho sob a GPL não pode ser considerado uma medida tecnológica efetiva contra quebra de DRM. Ou seja, é permitido incluir sistemas de DRM no software tanto quanto é permitido quebrá-lo. Tal cláusula está na seção três:
50 40 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS Protecting Users Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work s users, your or third parties legal rights to forbid circumvention of technological measures. Outro ponto tratado em maior profundidade na nova versão da GPL é a questão das patentes. Uma das motivações para as mudanças que foram implementadas na licença foi um acordo entre a Microsoft e a Novell, decorrente de uma alegação da Microsoft de que a Novell estaria infringindo suas patentes na distribuição SUSE Linux. Segundo o acordo, a Microsoft não processaria usuários por infração de patentes desde que o software fosse obtido de alguém que estivesse pagando à Microsoft para obter tais direitos. A GPLv3 é bem específica quanto ao caso e, na Seção 11, sobre patentes, afirma que uma organização não poderá distribuir trabalhos cobertos por essa licença caso faça parte de um desses acordos discriminatórios, conforme detalhado a seguir. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March Há ainda outras definições sobre patentes nessa seção, porém, elas não serão detalhadas aqui, já que não são relevantes dentro da legislação brasileira, conforme visto no Capítulo 4. Mas essa questão das patentes é uma das principais causas de receio por parte das empresas que detêm propriedade intelectual nessa forma. Como a comunidade de software livre muitas vezes busca o apoio dessas empresas, esse tornou-se um forte
51 5.2 RECÍPROCAS TOTAIS 41 fator para frear a adoção da GPLv3. Quanto à compatibilidade com outras licenças, a mais importante delas sendo a Apache, foram adicionados alguns termos na Seção 7 da GPL, intitulada Termos Adicionais, de forma a permitir que software cuja licença possua certas restrições ainda assim possa ser relicenciado sob a GPL, e dessa forma ser distribuído como parte de um trabalho derivado ou coletivo: Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: * a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or * b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or * c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or * d) Limiting the use for publicity purposes of names of licensors or authors of the material; or * e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or * f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. Para a distribuição de código binário, foram adicionadas novas possibilidades de disponibilização do código fonte correspondente, a mais importante delas tratando do compartilhamento peer-to-peer. Nesse caso, basta que seja informado onde o código fonte está sendo oferecido ao público. Além disso, segundo a Seção 9, a mera transmissão do programa através de peer-to-peer não obriga que o usuário aceite a licença. Ou seja, apenas a pessoa que inicia o processo de distribuição peer-to-peer precisa se preocupar em informar sobre o código fonte, as demais estando isentas de qualquer obrigação. Por fim, vale comentar que há algumas mudanças sutis na forma como a licença foi escrita, visando evitar ambiguidade de seus termos. Por exemplo, a palavra distribute foi substituída por convey, termo que foi definido no início da licença como qualquer forma de propagação que permite a outras partes fazer ou receber cópias.
52 42 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.2 Vantagens e Desvantagens Considerando que essa é apenas uma atualização da GPL, as vantagens e desvantagens analisadas aqui serão em relação a sua versão anterior, que já foi discutida. A GPLv3 foi lançada para corrigir algumas brechas que foram verificadas no decorrer dos anos com o uso da GPL 2.0, deixando a licença mais alinhada à visão de copyleft da Free Software Foundation. Seu texto passou por um longo período de revisão aberta pela comunidade, em que foi possível sugerir e incorporar diversas melhorias. Sendo assim, é um texto bastante sólido e bem escrito, que está consistente com uma ampla gama de legislações, inclusive a brasileira. A revisão da GPL também serviu para alinhá-la às atuais práticas de distribuição de software, incluindo o compartilhamento em redes peer-to-peer. Uma das principais vantagens da nova versão da GPL é sua compatibilidade com um maior número de licenças de software livre, principalmente a Apache, que é uma das licenças permissivas mais usadas pela comunidade. Porém, a GPLv3 também apresenta uma forte desvantagem em relação a compatibilidade: software que está sob a licença GPL 2.0 (sem a cláusula ou posterior ) não pode ser integrado a software GPLv3, pois essas licenças são incompatíveis. Outra desvantagem é que várias empresas têm um certo receio em adotar a GPLv3, pois ela é uma licença relativamente nova e de alta complexidade. A cláusula que gera maior preocupação nos advogados corporativos é a relacionada às patentes. Portanto, se o objetivo é garantir as liberdades propostas pelo movimento de software livre, a GPLv3 é mais adequada do que sua anterior. Porém, se uma maior difusão do software é o mais importante, tornando-o compatível com um maior número de licenças e incentivando seu uso em qualquer empresa, então deixar sob a licença GPL versão 2 ou superior pode ser uma melhor alternativa. Note que se o projeto envolver componentes cuja licença é compatível apenas com a GPLv3, então é necessário que a licença adotada seja a GPLv3, e não GPL versão 2 ou superior AGPL A Affero Inc. (www.affero.org) é uma empresa que se define com a missão de trazer a cultura de patrocínio para a Internet. Ela provê um serviço de hospedagem de páginas pessoais para autores de diversos tipos e integra um sistema de pagamento seguro para que pessoas possam fazer doações. A Affero apóia o desenvolvimento de software livre e, em março de 2002, criou a primeira versão da Affero General Public License, ou AGPL (www.affero.org/oagpl.html). A AGPL é uma adaptação da GPL, autorizada pela Free Software Foundation, que inclui um termo sobre uso de um software através de uma rede. O parágrafo adicionado à Seção 2, sobre modificação e cópia do programa e sua distribuição, é o seguinte:
53 5.2 RECÍPROCAS TOTAIS 43 d) If the Program as you received it is intended to interact with users through a computer network and if, in the version you received, any user interacting with the Program was given the opportunity to request transmission to that user of the Program s complete source code, you must not remove that facility from your modified version of the Program or work based on the Program, and must offer an equivalent opportunity for all users interacting with your Program through a computer network to request immediate transmission by HTTP of the complete source code of your modified version or other derivative work. Esse parágrafo afirma, de forma resumida, que se no programa original os usuários que interagiam com o programa tinham a opção de pedir o código fonte completo, tal opção tem que ser mantida em qualquer versão modificada. Dessa forma, mesmo não havendo a distribuição de um binário, um aplicativo web público sob esta licença precisa se manter aberto para qualquer usuário que interaja com ele. Em 19 de novembro de 2007, a Free Software Foundation lançou a GNU Affero General Public License, conhecida como AGPLv3 (www.fsf.org/licensing/licenses/agpl-3.0.html), uma licença diferente daquela escrita pela Affero e compatível com a GPLv3. Para permitir que um programa licenciado sob a antiga licença Affero que utilizasse a cláusula ou posterior pudesse ser convertido para essa nova licença, a Affero Inc. criou uma versão intermediária da licença, que determina apenas o seguinte: This is version 2 of the Affero General Public License. It gives each licensee permission to distribute the Program or a work based on the Program (as defined in version 1 of the Affero GPL) under the GNU Affero General Public License, version 3 or any later version. If the Program was licensed under version 1 of the Affero GPL "or any later version", no additional obligations are imposed on any author or copyright holder of the Program as a result of a licensee s choice to follow this version 2 of the Affero GPL. As diferenças entre a GPLv3 e a AGPLv3 residem no preâmbulo e na seção 13 da licença. Enquanto na GPLv3 a seção 13 informa apenas que trabalhos que usam essas duas licenças podem ser combinados, valendo a AGPLv3 como licença do trabalho resultante, a seção 13 da AGPLv3 afirma ainda que: Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source
54 44 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.3 from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. Essa nova versão da redação da cláusula visa tornar a Affero GPL ainda mais abrangente. Enquanto originalmente era colocado como critério que o programa fosse feito para interagir com usuários através de uma rede, nessa nova versão, qualquer tipo de software que interage através da rede está coberto, como por exemplo servidores de jogos, que interagem com o usuário através de um outro programa intermediário. Vantagens e Desvantagens Para a AGPL valem todas as considerações feitas a respeito da GPL. Ela é recomendada para projetos em que há interação via rede e busca-se o copyleft. A AGPL é considerada a mais viral das licenças, portanto deve ser evitada em projetos em que haja qualquer expectativa de utilização sob outra licença, a não ser que seja adotado um modelo de licenciamento múltiplo European Union Public License A União Européia lançou, em janeiro de 2007, a European Union Public License 1.0 (EUPL), baseada na Open Software License (OSL) versões 2.1 e 3.0. Os principais motivadores para a criação da EUPL foram: fomentar o reconhecimento, uso e distribuição de software livre, em particular entre as administrações públicas européias; ter licenças válidas como contrato em 22 línguas oficiais ao invés de usar traduções que têm valor apenas informativo; adaptar as licenças considerando as leis européias; reduzir problemas de compatiblidade entre licenças copyleft. A licença inicialmente não foi aprovada pelo comitê da Open Source Initiative, porém foram sugeridas modificações para uma nova versão da EUPL, a 1.1, que foi aprovada em Março de Vantagens e Desvantagens A licença EUPL é vantajosa para projetos europeus por ter sido adaptada para a legislação da União Européia e por apresentar traduções oficiais para diversos idiomas. A principal desvantagem está no fato de ser uma licença ainda muito nova e pouco conhecida, gerando as dificuldades citadas anteriormente relativas a proliferação de licenças.
55 5.3 RECÍPROCAS PARCIAIS Recíprocas Parciais Licenças recíprocas parciais, também chamadas de copyleft fraco, determinam que modificações do trabalho coberto por elas devem ser disponibilizadas sob a mesma licença. Porém, quando o trabalho é utilizado apenas como um componente de outro projeto, esse projeto não precisa estar sob a mesma licença. Alguns autores, como Simon Phipps [Sun06], utilizam a denominação licença baseada em arquivos para essa categoria, enquanto as recíprocas totais seriam licenças baseadas em projeto. Considera-se que essas licenças são as que melhor equilibram dois fatores importantes do modelo de software livre: atração de interesse para a comunidade e força e longevidade do código fonte disponível. Ao mesmo tempo que essas licenças permitem que os desenvolvedores utilizem o trabalho para criar software que será licenciado como preferirem, modificações e melhorias feitas ao próprio trabalho são obrigatoriamente disponibilizadas à comunidade [Sun06]. A Free Software Foundation recomenda o uso desse tipo de licença apenas em casos específicos. Seu argumento é a necessidade de fortalecer o software livre em detrimento do software fechado. Assim, quando as funcionalidades de uma biblioteca não estão facilmente disponíveis para uso em software fechado, seria melhor mantê-las dessa forma, utilizando uma licença recíproca total. Dessa forma, o software livre teria uma vantagem sobre concorrentes fechados. Porém, se as funcionalidades já estão ao alcance de software fechado, e portanto essa vantagem não está em questão, então uma licença recíproca parcial é recomendada, pois esse modelo ajuda a aumentar o número de usuários da biblioteca [Fre08]. Alguns advogados, como Lawrence Rosen [Ros05], defendem que o uso de bibliotecas que são apenas ligadas a um novo software não caracterizaria um trabalho derivado, mas sim um trabalho coletivo. Ele faz uma analogia a páginas na Web, em que cada uma é um trabalho com direito autoral individual, apesar de muitas vezes estarem presentes ligações de uma para a outra. Segundo ele, esse tipo de relação consiste em um trabalho coletivo. Portanto, nesse cenário, mesmo um software sob uma licença recíproca total poderia ser usado como biblioteca de outro que estaria sob outra licença. Porém, no caso brasileiro, a Lei de Direito Autoral é mais específica e impõe maiores limitações (vide Seção 4.2). Dessa forma, o uso de licenças recíprocas parciais faz-se necessário em casos nos quais o autor quer garantir que o desenvolvimento da biblioteca seja feito no modelo de software livre mas ao mesmo tempo quer permitir seu uso em projetos que utilizam outras licenças A Licença LGPL A GNU Lesser General Public License, ou LGPL (www.fsf.org/licensing/licenses/lgpl. html), originalmente denominada GNU Library General Public License, foi escrita em 1991 pela Free Software Foundation. Assim como a GPL e a AGPL, passou por grandes modificações no final de 2007 para adequar-se à versão 3 das licenças.
56 46 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.3 Em versões anteriores, a LGPL era uma cópia da GPL com algumas modificações relativas a bibliotecas, definidas na licença como uma coleção de funções de software e/ou dados preparada para ser convenientemente ligada com programas aplicativos (que usam algumas dessas funções e dados) para formar executáveis. Veremos a seguir os termos da versão 2.1 dessa licença. Nessa parte do capítulo, adotaremos a versão 2.0 da GPL quando esta for mencionada. A primeira limitação presente na LGPL que não constava na GPL é que trabalhos modificados da biblioteca precisam ser também bibliotecas, segundo o artigo a da seção 2. Já o artigo d da mesma seção busca maximizar a utilidade da biblioteca, desvinculando-a de aplicações específicas. Ele determina que: If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. Para permitir a distribuição de bibliotecas LGPL junto com software GPL, há também uma cláusula na LGPL que afirma que pode-se optar por aplicar os termos da GPL ao invés dessa licença (a LGPL) para uma determinada cópia da biblioteca. Porém, é dito também que tal mudança é irreversível para aquela cópia, e assim a GPL é aplicada a todas as cópias subsequentes e trabalhos derivados feitos a partir dela. Além disso, caso seja feito um trabalho derivado da biblioteca que não resulta em uma biblioteca, relicenciá-lo para GPL é a única alternativa. A Seção 5 da LGPL afirma que trabalhos que apenas usam a biblioteca, considerados isoladamente, não estão sujeitos aos termos da licença. Porém, também descreve em detalhes vários casos de uso da biblioteca em que é necessário estar atento às condições da licença. A Seção 5 está copiada na íntegra a seguir e será discutida em maiores detalhes no Capítulo 6, sobre compatibilidade. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
57 5.3 RECÍPROCAS PARCIAIS 47 When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. Apesar dessa tentativa de especificar o que seria um trabalho que usa a biblioteca, em que não há restrições quanto ao licenciamento, em oposição a um trabalho baseado na biblioteca, que estaria sujeito aos termos da LGPL, há muitos casos em que tal diferenciação não está clara. Além dos casos omissos, é possível mais de uma interpretação para alguns casos abordados nessa seção. Há ainda a Seção 6, que faz uma exceção às anteriores e provê termos adicionais para trabalhos que incluem partes da biblioteca na versão que será distribuída. Essa seção é em parte equivalente à Seção 3 da GPL, e sua leitura é recomendada. Segundo os termos dessa seção, se a pessoa que está distribuindo um programa que usa a biblioteca não tem permissão para distribuir algum dos componentes necessários para execução do programa e esse componente não é parte integrante do sistema operacional, então a distribuição do programa na forma executável não é permitida nos termos da LGPL. Na próxima seção, é descrito o caso de juntar uma biblioteca coberta pela LGPL com alguma outra biblioteca, sob outra licença, para formar uma única biblioteca. As regras impostas para tanto são as seguintes: em primeiro lugar, é necessário que os termos das licenças permitam que as bibliotecas sejam distribuídas como trabalhos separados. Além disso, a parte da biblioteca que está sob LGPL deve estar disponível separadamente sob os termos da LGPL, ou sendo distribuída junto com o conjunto, ou sendo colocado um aviso informando onde obtê-la. As demais seções da LGPL correspondem às seções 4 a 12 da GPL, apenas com as alterações necessárias para tratar de uma Biblioteca ao invés de um Programa, conforme definido nas respectivas licenças. A nova versão da licença, LGPLv3, apresenta-se como um conjunto de termos adicionais à GPLv3, já discutida na Seção Isso implica que a licença LGPL foi totalmente reescrita em relação à versão 2.1, porém seus princípios foram mantidos. As diferenças en-
58 48 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.3 tre a LGPL 2.1 e a GPL 2.0 correspondem, em grande parte, do ponto de vista semântico, às permissões adicionais que constituem a LGPLv3. Há seis cláusulas na LGPLv3. A primeira constitui as definições adicionais, que explica o que será entendido por biblioteca, aplicação, trabalho combinado, código fonte correspondente mínimo e código da aplicação correspondente. Em seguida, é explicado como e em que circunstâncias uma pessoa pode distribuir um trabalho que está sob a LGPLv3 sem estar sujeito à seção 3 da GPLv3 (vide termos 1, 2, 3 e 4 da licença, que não serão citados aqui por se tratar de um texto muito extenso, porém cujos detalhes são de suma importância para o uso correto da LGPLv3): Também são definidos os termos para criar um trabalho constituído por bibliotecas combinadas: 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. E o último termo da LGPLv3 trata de versões revisadas da licença, informando que a Free Software Foundation poderá publicar versões revisadas e/ou novas da LGPL e explicando que se a pessoa recebeu o trabalho licenciado sob uma certa versão da licença ou qualquer versão posterior, então ela poderá escolher quais das versões da licença ela irá seguir. Se não é especificada uma versão, então a pessoa pode escolher qualquer versão já publicada. Vantagens e Desvantagens A LGPL é uma licença de alta complexidade, que requer uma observação bastante atenta dos seus termos para evitar seu descumprimento, que pode acarretar em uma ação judicial. Contextos de uso da biblioteca diferentes em geral requerem ações diferentes por parte da pessoa usando a biblioteca. Apesar de todos os detalhes presentes na licença, há ainda muita margem para interpretação de casos que não estão bem definidos. Além disso, o próprio relicenciamento de trabalhos derivados como LGPL é limitado, às vezes forçando o uso da GPL, como foi visto anteriormente.
59 5.3 RECÍPROCAS PARCIAIS 49 Apesar da dificuldade em usar a LGPL, ela é uma licença amplamente adotada, pois combina características permissivas e recíprocas de forma balanceada, trazendo vantagens de ambos os modelos, conforme foi discutido na introdução desta seção. A escolha entre a versão 2.0 ou a LGPLv3 pode ser tomada com base nos mesmos argumentos apresentados na Seção 5.2.2, sobre a GPLv A Licença Mozilla A Mozilla Public License, ou MPL, foi escrita por uma das executivas da Netscape, Mitchell Baker, que tornou-se uma das principais responsáveis pelo projeto Mozilla, atuando como CEO da Fundação Mozilla por um longo período. A licença Mozilla é considerada bem escrita e serviu como modelo para muitas das licenças de software livre comerciais que a seguiram [Ros05]. Ela une características de licenças recíprocas e de licenças permissivas, e, portanto, também é categorizada como uma licença recíproca parcial. Na licença Mozilla, a delimitação é bastante clara: o código coberto pela licença deve ser redistribuído pelos termos da licença Mozilla, porém esse código também pode ser utilizado em trabalhos ampliados, que podem estar sob outra licença. A primeira seção da licença, como em um contrato convencional, trata das definições, que são bastante precisas. A lista completa de definições pode ser vista abaixo, porém algumas merecem atenção especial: uso comercial significa qualquer distribuição ou outra forma de deixar o software disponível, não se limitando ao uso por empresas; contribuidor recebe uma definição especial nessa licença, diferindo-o tanto do desenvolvedor inicial como também dos usuários comuns que estão usando o projeto; executável é definido de forma ampla, como qualquer coisa que não é o código fonte; código fonte é definido em mais detalhes do que encontramos nas licenças vistas anteriormente. São permitidos patches e também comprimir o arquivo, desde que o software para descompressão esteja largamente disponível gratuitamente. 1. Definitions "Commercial Use" means distribution or otherwise making the Covered Code available to a third party "Contributor" means each entity that creates or contributes to the creation of Modifications "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.
60 50 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data "Executable" means Covered Code in any form other than Source Code "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License "License" means this document "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
61 5.3 RECÍPROCAS PARCIAIS "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. A Seção 2 da MPL trata do licenciamento do código fonte, afirmando que o desenvolvedor inicial está concedendo uma licença não exclusiva, livre de royalties e válida em todo mundo. Essa licença libera a propriedade intelectual (exceto patentes ou marcas registradas) para o uso, modificação, reprodução, exibição, performance, sublicenciamento e distribuição do código original (ou porções dele) com ou sem modificações e como parte ou não de um trabalho ampliado. Para o caso das patentes também são concedidas algumas permissões, porém, diferentemente da LGPL, aplicam-se apenas ao código original e não a modificações feitas nele. Nessa seção também constam as permissões concedidas por pessoas que contribuem modificações ao código, que são bastante similares às vistas anteriormente, concedidas pelo desenvolvedor inicial. A Seção 3 trata das obrigações no ato da distribuição, que são similares às da GPL. As principais exigências são que: o código coberto seja distribuído sob os termos da MPL; o código fonte esteja disponível; as modificações estejam explícitas; o aviso legal esteja presente no código fonte; na distribuição de formas executáveis, as condições anteriores sejam cumpridas para o código fonte correspondente. A principal diferença em relação à GPL está na Seção 3.7, referente a trabalhos ampliados, que são criados combinando código coberto com outro código que não está sob a
62 52 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.3 licença MPL em um único produto. Nesse caso, os requerimentos da MPL recaem apenas ao código coberto, e não ao trabalho como um todo, como seria na GPL. A Seção 4 da MPL apresenta mais uma diferença em relação à GPL. Na impossibilidade de cumprir algum dos termos da licença por questões judiciais, basta que a situação seja explicada em um arquivo chamado LEGAL e que os demais termos sejam respeitados. Assim, o uso do código não é impedido, como aconteceria com a GPL. Além disso, na Seção 8, é dado um prazo de 30 dias para que seja corrigido qualquer descumprimento dos termos antes que a licença seja terminada. A Seção 6 afirma que a Netscape tem o direito de alterar a licença a qualquer momento, e que a pessoa que está exercendo os direitos garantidos pela licença pode escolher se seguirá os termos em que o trabalho foi licenciado ou a nova versão. Isso significa que, por outro lado, o desenvolvedor é obrigado a aceitar as modificações de licença como termos válidos para seu projeto que foi licenciado anteriormente. A Netscape transferiu os direitos de alterar a licença para a Fundação Mozilla em 2003, apesar do texto da licença ainda não ter sido modificado para refletir essa alteração. A Seção 6 permite ainda que seja criada uma licença derivada da MPL, evitando assim que a Mozilla tenha controle sobre os termos de licenciamento do projeto, desde que fique claro na versão modificada que ela não está associada à Mozilla ou à Netscape. Além disso, a Seção 13 explica o licenciamento múltiplo, que permite ao usuário escolher qual licença, entre as fornecidas pelo desenvolvedor, ele irá adotar. As Seções 7, 9, 10, 11 e 12 tratam de garantias, responsabilidade e outros aspectos jurídicos relacionados. Para finalizar, a MPL apresenta o seguinte quadro, para aplicação da licença: EXHIBIT A -Mozilla Public License. The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is. The Initial Developer of the Original Code is. Portions created by are Copyright (C). All Rights Reserved. Contributor(s):.
63 5.3 RECÍPROCAS PARCIAIS 53 Alternatively, the contents of this file may be used under the terms of the license (the "[ ] License"), in which case the provisions of [ ] License are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the [ ] License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [ ] License. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the [ ] License." [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] Vantagens e Desvantagens A licença Mozilla encoraja trabalhos ampliados. Até mesmo alguns tipos de projetos que seriam considerados trabalhos derivados pela lei de copyright podem usar outra licença. Basta que sejam seguidos os termos da MPL, que em linhas gerais requerem apenas que os arquivos que contém código do trabalho original estejam sob a licença MPL. Devido à clareza de seus termos, baseados em definições precisas, a MPL é uma licença mais fácil de entender e aplicar do que a LGPL. Portanto, quando se busca uma licença que combine as vantagens do modelo recíproco com o modelo permissivo, a MPL é uma ótima alternativa. Porém, uma desvantagem da MPL em relação à LGPL é a incompatibilidade com a GPL. Não é possível juntar dois projetos que estejam sob as licenças MPL e GPL, pois a MPL obriga que o código original mantenha-se como MPL e a GPL obriga que o trabalho como um todo e consequentemente cada uma de suas partes seja GPL. Nesse caso, a alternativa é o licenciamento múltiplo, conforme explicado na MPL A Licença Eclipse Assim como a Netscape, a IBM é uma organização para a qual o software livre tornouse peça chave do posicionamento estratégico, e neste sentido usou seus recursos para dar um tratamento diferenciado aos aspectos legais envolvendo esse tipo de software. A Eclipse Public License (EPL) é a terceira geração de licenças de software livre originadas na empresa. A primeira delas foi a IBM Public License (IPL), publicada em Agosto de 1999 (um ano após a empresa anunciar o suporte ao sistema operacional Linux), marcando o período em que a IBM enfatizava seu apoio à Open Source Initiative e o uso do software livre. Um diferencial notável em relação à GPL é colocar a responsabilidade legal no distribuidor do código (e não no desenvolvedor/colaborador), mas a maior fonte de incompatibilidade
64 54 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.4 com esta são as restrições ligadas a patentes: a licença IPL deixa de fazer efeito em caso de disputas envolvendo patentes. A Common Public License veio a público em Maio de 2001 como uma substituta à IPL. Um dos seus objetivos era encorajar o uso da licença por terceiros, e para isso ela conta com terminologia mais genérica, que não define especificamente a IBM como fornecedor do software original. A CPL se assemelha à GPL no aspecto da distribuição de programas modificados, pois também obriga a disponibilização do código fonte das modificações, mas permite que software não-cpl seja ligado a bibliotecas CPL sem obrigar o software a adotar a mesma licença. Nesse sentido, ela se aproxima mais da LGPL. Com a criação da Eclipse Foundation, uma ONG responsável pelo projeto Eclipse e por cultivar a comunidade e ecossistema em torno dele, fez-se necessária uma licença que não estivesse tão focada em litígios e patentes, e assim surgiu a EPL. Ela ainda é incompatível com a GPL 2.0, em particular por obrigar o distribuidor a licenciar patentes relacionadas a modificações feitas no software original, bem como por incluir um dispositivo que desestimula processos envolvendo patentes, mas é aprovada pela OSI e considerada licença de software livre pela FSF. O uso de bibliotecas EPL em software corporativo é seguro, desde que observada a questão da distribuição de modificações. Vantagens e Desvantagens A licença Eclipse é recomendada para projetos que façam parte do ecossistema do Eclipse, que é muito utilizado no desenvolvimento de software em diversas linguagens. Porém, ao desenvolver um projeto desses, é muito importante estar atento aos componentes utilizados, pois essa licença não é compatível com a GPL 2.0, sendo essa sua principal desvantagem. 5.4 Quadro Comparativo A seguir apresentamos um quadro comparativo entre as licenças mais importantes estudadas neste capítulo, destacando suas principais características de acordo com a nossa avaliação. BSD MIT Apache GPL 2.0 GPLv3 AGPL LGPL Mozilla / EPL Reciprocidade 1 Ausente Ausente Ausente Total Total Total Parcial Parcial Clareza / Média Alta Alta Média Média Média Baixa Alta Simplicidade 2 Adoção 3 Alta Baixa Média Alta Média Baixa Alta Alta 6 Compatibilidade Sim Sim v3 2.0 v3 Sim 7 respectiva Não com a GPL 4 Licenças Sim Sim Sim Não Não Não Não Sim derivadas 5 1 Ausente: não exige licenciamento de trabalhos derivados sob os mesmos termos; parcial: dispensa o licenciamento equivalente se o projeto original for componente do novo projeto; total: obriga qualquer trabalho derivado a ser licenciado sob os mesmos termos.
65 5.5 METODOLOGIA PARA ESCOLHA DE LICENÇAS 55 2 É necessária atenção especial aos termos omissos e interpretações diversas em licenças de assertividade média ou baixa, observando as restrições delineadas ao longo deste capítulo. 3 Licenças com maior grau de adoção facilitam a disseminação do projeto entre usuários e empresas e novos desenvolvedores, na medida em que aumentam a chance de contato prévio com as mesmas. 4 A compatibilidade com essa licença em particular é um critério importante, pois ela é uma das mais usadas em projetos já existentes, e, ao mesmo tempo, uma das que mais apresenta restrições de reciprocidade (sendo a única totalmente recíproca analisada neste capítulo). 5 Licenças que permitem a criação de derivadas podem oferecer maior liberdade, mas tornam a verificação de compatibilidade menos trivial. 6 Adoção alta se considerarmos também as licenças derivadas da MPL. 7 Neste caso prevalece a AGPL. 5.5 Metodologia para Escolha de Licenças Para finalizar este capítulo, apresentaremos uma metodologia para escolha da licença em um novo projeto de software livre. É importante ressaltar que ela é apenas uma sistematização das principais características das licenças vistas até esse momento e não abrange detalhes de implementações específicas do software, que serão estudadas no capítulo seguinte. Para uma análise mais completa da situação do projeto, é essencial adotar uma postura crítica em relação a todos os aspectos dos componentes envolvidos. Para facilitar essa tarefa, consulte o Capítulo 7, que apresenta algumas ferramentas e processos que podem ser utilizadas para este fim. A Figura 5.1 representa a metodologia proposta na forma de um fluxograma. O processo é bastante simples e se inicia na decisão de distribuir um programa como software livre. No caso de ser uma contribuição a uma comunidade que já existe, por exemplo, um plugin para o ambiente Eclipse, o ideal é utilizar a mesma licença do projeto principal dessa comunidade, de forma a evitar qualquer incompatibilidade tanto atual como também futura. Por outro lado, se for um projeto mais independente, não atrelado de nenhuma forma a alguma licença pré-existente, o principal fator de decisão é até que ponto o detentor dos direitos quer impor limitações no seu uso e distribuição. Conforme visto neste capítulo, cada tipo de licença possui vantagens e desvantagens. Se a ideia é que o projeto seja utilizado apenas em software livre, fortalecendo a comunidade, sem se importar com a incompatibilidade com projetos que utilizem outra licença, deve ser utilizada a GPL. A escolha da versão também depende dos propósitos e dos componentes utilizados, lembrando que a versão dois é incompatível com a três. Sendo assim, para obter máxima compatibilidade com outros projetos que também utilizam a GPL, uma solução é fazer o licenciamento na versão 2 ou superior, enquanto que para seguir mais de perto os princípios da Free Software Foundation a escolha deveria ser a GPLv3, ou até mesmo a AGPLv3, no caso de um sistema que irá rodar em um servidor para a Internet. No caso do projeto querer se beneficiar de maior adoção, o ideal é escolher uma licença com menores dificuldades de compatibilização. Porém, se ainda é importante que alterações do próprio projeto sejam retribuídas aos autores, a licença a ser escolhida deve
66 56 LEVANTAMENTO E CLASSIFICAÇÃO DE LICENÇAS 5.5 Figura 5.1: Metodologia para escolha de licenças
Licenças de Software Livre História e Características
Licenças de Software Livre História e Características Relatório Técnico RT-MAC-IME-USP 2009-01 Vanessa Sabino, Fabio Kon Centro de Competência em Software Livre Departamento de Ciência da Computação Instituto
ARTIGOS CONSEGI 2009 CONGRESSO INTERNACIONAL SOFTWARE LIVRE E GOVERNO ELETRÔNICO
ARTIGOS CONSEGI 2009 CONGRESSO INTERNACIONAL SOFTWARE LIVRE E GOVERNO ELETRÔNICO MINISTÉRIO DAS RELAÇÕES EXTERIORES Ministro de Estado Secretário-Geral Embaixador Celso Amorim Embaixador Samuel Pinheiro