Post on 22-Nov-2014
description
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