licenças de software livre

42
Introdução Histórico Aspectos Jurídicos Classificação de Licenças Compatibilidade Ferramentas Estudos de Caso Um estudo sistemático de licenças de software livre Vanessa C. Sabino Orientador: Fabio Kon 12 de Agosto de 2011 1

Upload: vanessa-sabino

Post on 22-Nov-2014

5.380 views

Category:

Technology


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

Page 1: 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

Page 2: Licenças de Software Livre

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

Introdução

2

Page 3: Licenças de Software Livre

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

Page 4: Licenças de Software Livre

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

Page 5: Licenças de Software Livre

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

Page 6: Licenças de Software Livre

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

Page 7: Licenças de Software Livre

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

Page 8: Licenças de Software Livre

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

Page 9: Licenças de Software Livre

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

Page 10: Licenças de Software Livre

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

Page 11: Licenças de Software Livre

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

Page 12: Licenças de Software Livre

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

Page 13: Licenças de Software Livre

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

Page 14: Licenças de Software Livre

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

Page 15: Licenças de Software Livre

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

Page 16: Licenças de Software Livre

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

Page 17: Licenças de Software Livre

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

Page 18: Licenças de Software Livre

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

Page 19: Licenças de Software Livre

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

Page 20: Licenças de Software Livre

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

Page 21: Licenças de Software Livre

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

Page 22: Licenças de Software Livre

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

Page 23: Licenças de Software Livre

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

Page 24: Licenças de Software Livre

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

Page 25: Licenças de Software Livre

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

Page 26: Licenças de Software Livre

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

Page 27: Licenças de Software Livre

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

Metodologia de escolha

27

Page 28: Licenças de Software Livre

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

Page 29: Licenças de Software Livre

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

Page 30: Licenças de Software Livre

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

Page 31: Licenças de Software Livre

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

Page 32: Licenças de Software Livre

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

Page 33: Licenças de Software Livre

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

Page 34: Licenças de Software Livre

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

Page 35: Licenças de Software Livre

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

Page 36: Licenças de Software Livre

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

Page 37: Licenças de Software Livre

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

Page 38: Licenças de Software Livre

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

Page 39: Licenças de Software Livre

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

Page 40: Licenças de Software Livre

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

Page 41: Licenças de Software Livre

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

Page 42: Licenças de Software Livre

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

Conclusão

42