Licenças de Software Livre

Post on 22-Nov-2014

5.380 views 2 download

description

Um Estudo Sistemático de Licenças de Software Livre Slides da defesa de mestrado no IME-USP. 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.

Transcript of Licenças de Software Livre

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Um estudo sistemático delicenças de software livre

Vanessa C. SabinoOrientador: Fabio Kon

12 de Agosto de 2011

1

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Introdução

2

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Motivação

• contextualizar as licenças no movimento de Software Livre• tornar o texto das principais licenças mais acessível a não

especialistas• legislação brasileira

• facilitar o processo de escolha de software• compatibilidade de licenças

• público-alvo:• desenvolvedores• cientistas• gerentes• etc.

3

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Estrutura da dissertação

1. Breve Histórico do Software Livre2. A Importância do Software Livre3. Aspectos Jurídicos que Embasam as Licenças de

Software4. Levantamento e Classificação de Licenças5. Compatibilidade entre Licenças6. Ferramentas e Metodologias para Análise de Licenças7. Estudos de Caso

4

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

O que são as licenças?

• documentos legais• fornecidos pelos detentores dos direitos sobre um

programa de computador• para autorizar usos de seu trabalho• protegidos pelas leis vigentes no local• exemplos de uso:

• copiar• redistribuir• adaptar para necessidades específicas• utilizar como fundação para construção de programas mais

complexos

5

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Breve Histórico do Software Livre

• década de 1950: software acoplado ao hardware• década de 1970: mudança de postura na indústria

• Bill Gates: Carta Aberta aos Hobistas• royalties do Altair BASIC equivalentes a $2/hora

• 27/09/1983: Projeto GNU - Richard Stallman• novo sistema compatível com UNIX

• núcleo, compilador, editor de textos, ...• motivação: princípio de compartilhar coisas que gosta

6

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Software Livre (1985) - 4 Liberdades

1. executar o programa para qualquer propósito2. modificar o programa para adaptá-lo às suas

necessidades (necessário ter acesso ao código fonte)3. redistribuir cópias gratuitamente ou mediante pagamento4. distribuir versões modificadas do programa para que a

comunidade possa se beneficiar de suas melhorias

• copyleft e a licença GPL

7

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Vantagens do Software Livre

• compartilhamento do código fonte• evita duplicação de esforços• reduz custo de desenvolvimento

• maior qualidade• “dados olhos suficientes, todos os bugs são superficiais”

(Lei de Linus)• orgulho do desenvolvedor• competição / forks

8

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Vantagens do Software Livre

• fomento do mercado local• desenvolvimento de soluções baseadas em software livre• economia de licenças pagas (evasão de divisas)

• evita dependência do fornecedor• vantagem financeira• mais liberdade• possibilidade de continuidade do projeto

9

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Aspectos Jurídicos - Importância

• as leis se aplicam a todos• batalhas judiciais• reputação do projeto• preocupação crescente nas organizações

10

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Características do Software

• necessidade de uma legislação específica• software é um fato jurídico de caráter único

• mercadoria (res)• bem imaterial

• produto ou serviço?

11

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Direito Autoral e a Lei do Software

• Lei 9.609 - 19/02/1998• “Dispõe sobre a proteção da propriedade intelectual de

programa de computador, sua comercialização no País, edá outras providências.”

• Lei 9.610 - 19/02/1998• “Altera, atualiza e consolida a legislação sobre direitos

autorais e dá outras providências.”

• Código Civil

12

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Lei do Software

• balancear os interesses do detentor dos direitos com osdo público

• benefício de toda a sociedade no longo prazo• funcionalidade e valor econômico mais importantes do que

um valor cultural associado• maior liberdade de concorrência• formas de expressão vs. idéias

• direito de exclusividade do autor é exercido sobre o código• algoritmo e estruturas de dados não são protegidos

• não se aplicam as disposições relativas aos direitos morais

13

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Contratos

• Lei 9.609 Art. 9o: “o uso de programa de computador noPaís será objeto de contrato de licença”

• autorização de uso• não há cessão dos direitos patrimoniais

• acordo de vontades• na conformidade da lei• finalidade de adquirir, resguardar, transferir, conservar,

modificar ou extinguir direitos• liberdade de contratação é regra

• o que a lei não proíbe, o que não afronta a ordem pública,é permitido

14

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Tipos de Contratos

• típico x atípico• interpretado de acordo com o contrato típico mais próximo

e contratos em geral• contrato de adesão

• cláusulas ambíguas interpretadas favoravelmente à parteque não teve o poder de influenciar no conteúdo

• contrato benéfico• apenas uma das partes aufere os benefícios, enquanto a

outra sofre os encargos• estipulações em favor de terceiro

• não é pré-determinado quem serão as demais pessoas quese beneficiarão da licença

• contrato de licenciamento em rede• contrato aberto a qualquer membro

15

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Contratos e Licenças Recíprocas

• partes interdependentes: contratantes e contratados• oferta erga omnes, constituindo uma rede aberta• não cria escassez legal• uniformidade contratual

• qualquer aperfeiçoamento pode beneficiar igualmentetodas as partes

16

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Licenças de Software Livre

• inúmeras possibilidades para redigir o texto• melhor reaproveitar licenças já consolidadas• importante evitar proliferação de licenças• grande número de licenças disponíveis

• OSI: 69 licenças aprovadas

• categorias: permissivas, recíprocas totais e recíprocasparciais

17

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Licenças Permissivas

• licenças acadêmicas• usadas em projetos de pesquisa / provas de conceito• não impõem grandes restrições• permitem atingir maior número de pessoas

• exemplo: TCP/IP do BSD Unix• empresas podem fechar o software

• exemplo: Kerberos (MIT) e Microsoft• contra-exemplo: servidor Apache

• marca forte• importância dos padrões

18

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Licença BSD

• primeira licença de software livre• criada para o Berkeley Software Distribution• amplamente difundida• vantagens

• simplicidade• ampla adoção

• desvantagens• muitas variantes

• original: “cláusula de propaganda”• nova BSD• BSD Simplificada

• termos vagos

19

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Licença MIT / X11

• criada para o X Window System em 1987• equivalente a BSD Simplificada sem cláusula de endosso• vantagens

• recomendada pela Free Software Foundation• apenas uma versão, sem “cláusula de propaganda”• maior clareza dos termos, principalmente sublicenciamento

• desvantagens• menos detalhada que outras licenças

20

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Licença Apache

• versão 1.1: similar à BSD• reescrita em 2004: versão 2.0• vantagens

• definição dos termos• transparência na incorporação de contribuições• usada pela maior parte dos projetos da Fundação Apache

e muitos outros• desvantagens

• incompatível com GPL 2.0

21

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Licenças Recíprocas Totais

• copyleft• trabalho derivado precisa ser distribuído sob os mesmos

termos• permissão para executar, copiar, modificar e distribuir

versões modificadas do programa• impede que sejam adicionadas restrições• resultados esperados:

• aumentar quantidade de software livre• preservar a compatibilidade entre versões

• problema:• software isolado

22

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

GPL

• escrita em 1989 (1.0), última versão de 2007 (GPLv3)• vantagens

• licença bastante utilizada• texto bastante sólido, revisado pela comunidade• melhorias devem manter-se livres para serem distribuídas

• desvantagens• alta complexidade• dificuldade de interpretação• potencial de incompatibilidade

• inclusive entre diferentes versões

23

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Licenças Recíprocas Parciais

• copyleft fraco / “baseada em arquivo”• modificações disponibilizadas sob a mesma licença• trabalho pode ser usado em outro projeto, com outra

licença• equilíbrio de dois fatores:

• atração de interesse para a comunidade• força e longevidade do código fonte disponível

24

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

LGPL

• escrita em 1991 para uso em bibliotecas de software• modificações precisam ser bibliotecas• programas que usam a biblioteca estão fora do escopo da

licença• termo sujeito a muitas restrições (executáveis, headers, ...)

• vantagens• bastante usada• combina características permissivas e recíprocas

• desvantagens• complexidade muito alta• muita margem para interpretação• relicenciamento como LGPL é limitado

25

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Mozilla Public License

• escrita em 1998 pela Nestcape• modelo para licenças comerciais• delimitação clara: código coberto e trabalho ampliado• vantagens

• encoraja trabalhos ampliados• definições precisas, fácil interpretação

• desvantagens• incompatível com GPL

• mas prevê o licenciamento duplo

26

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Metodologia de escolha

27

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Compatibilidade

• conflitos entre licenças• obrigações que são colocadas nas cláusulas das licenças• formas como componentes de software podem ser

utilizados em conjunto e distribuídos• legislação que cobre o licenciamento de software

28

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Trabalho derivado em software

• é trabalho derivado se:• é suficientemente permanente• contém porções significativas e criativas do(s) programa(s)

• em oposição a informações de interface ou incorporaçãopuramente funcional de código de proteção

• é criativo em si mesmo• em oposição a representar a única solução de combinação

ou maneira tecnicamente mais eficiente de fazê-la• envolve mudanças internas criativas e significativas que

não podem ser facilmente separadas ou distinguidas dooutro programa

29

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Compatibilidade por categoria: Licenças Permissivas

• mais fáceis de compatibilizar com outras licenças• termos específicos podem causar conflitos com os de

outra licença• principalmente quando do outro lado temos uma licença

recíproca• Apache x GPL 2.0

• recíproca ; permissiva

30

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Compatibilidade por categoria: Licenças Recíprocas

• obrigação de redistribuir o software sob a mesma licença• interpretação das leis vigentes sobre os termos da licença

• trabalho derivado

• distribuição• posicionamento do detentor dos direitos• possibilidade de incluir exceções

31

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Compatibilidade por categoria:Licenças Recíprocas Parciais

• grande variação entre as licenças• analisar os casos em que a licença se comporta como

recíproca ou como permissiva• licenças baseadas em arquivo• LGPL

• ligação dinâmica x ligação estática

32

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Ferramentas

• análise de licenças é uma tarefa contínua que acompanhaa evolução do projeto

• alteração de licença pode causar diversas consequências• ex.: IPFilter

• complexidade de licenças em projetos grandes• visibilidade e controle sobre o que está sendo utilizado

33

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

FOSSology

• processo interno de governança em TI da Hewlett-Packard• evitar erros e inconsistências decorrentes do processo

manual• repositório para arquivos e banco de dados para meta

dados• interface web e linha de comando• arquitetura aberta e modular• resultados bons, mas não há 100% de precisão

34

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

OSOR.EU License Wizard

• guia web para auxiliar a busca da licença mais adequada• levantamento da situação da propriedade intelectual do

projeto• esclarecimento de diversas questões relacionadas a

licenciamento• abordagem conservadora

35

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Carneades

• aplicação para mapeamento e avaliação de argumentos• ajudar desenvolvedores a construir, explorar e comparar

teorias legais• análise de licenças de software livre em casos particulares

• ontologia de licenças de software livre• ontologia para descrever projetos de software

• relação entre componentes

• modelagem de conceitos legais• construir e avaliar os argumentos a favor e contra se uma

licença pode ser usada num projeto• necessário conhecimento sobre ontologias, lógicas

não-monotônicas, XML etc

36

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Outras

• Licensator• Open Source License Checker• Black Duck• Palamida• Microformatos• Linux Foundation Open Compliance Program

37

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

MySQL

• modelo de licenciamento duplo• GPL 2.0• licença comercial

• conectores• inicialmente LGPL, depois GPL 2.0

• caso PHP: criação de uma exceção para solucionar

38

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Biblioteca Qt

• originalmente utilizava a FreeQt License: gratuita mas nãolivre

• acordo entre Trolltech e KDE para garantir suacontinuidade

• Q Public License - incompatível com GPL• hoje: LGPL 2.1, GPLv3 ou Qt Commercial Developer

License

39

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Núcleo do Linux

• primeira versão pública sob licença própria, incompatívelcom GPL

• licença alterada para GPL a partir da versão 0.99• módulos são trabalhos derivados?

• ligação dinâmica descaracteriza como trabalho derivado• distribuição dos binários junto ao Linux

• resistência ao uso da GPLv3

40

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Android

• 185 componentes sob 19 licenças• código do Google sob Apache 2.0

• não limitar liberdade dos fabricantes e integradores

• núcleo do Linux mantém GPL 2.0• máquina virtual Dalvik

• semelhanças com o Java• bytecode diferenciado

• problemas com patentes

41

Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso

Conclusão

42