Capítulo 3. Software Livre e Software de Código aberto
3.2 Software de Código Aberto
A FSFE(2004) considera o “Open Source” como uma campanha de
marketing para o software livre. Com filosofias parecidas, mas objetivos
diferentes, os dois movimentos não são conflitantes e podem trabalhar lado a lado em diversos projetos.
O software de código aberto também tem um órgão que o orienta: a
Open Source Initiative (OSI), que tem sua própria história, sua definição e
sua forma de aprovação de licenças.
3.2.1 Histórico da Open Source Initiative
Para a OSI (2004), a história do “open source” mistura-se com toda a história do sistema operacional Unix, a história da internet e a história do “software livre”.
A definição surgiu em uma reunião, em Palo Alto, Califórnia (EUA), no dia 3 de Fevereiro de 1998. As pessoas presentes na reunião refletiam sobre o anúncio da Netscape de disponibilizar o código fonte de seu navegador para
internet. Um dos presentes à reunião, Eric Raymond havia sido convidado para
auxiliar a Netscape a desenvolver o projeto. Percebeu-se que a Netscape havia criado um espaço precioso para que as pessoas envolvidas com o desenvolvimento de software livre pudessem demonstrar os benefícios desta forma de trabalho (OSI, 2004).
O pensamento dessas pessoas era deixar de lado a idéia de “atitude de confronto” que havia sido associada ao software livre no passado, e aproveitar a oportunidade dada pela Netscape para vender uma idéia que tinha os mesmos parâmetros do software livre. Ao estabelecerem táticas de como isso poderia ser feito, um novo rótulo acabou surgindo, o “Open Source”, sugestão de Chris Peterson. A FSFE (2004) classifica o “Open Source” como uma campanha de marketing para o software livre.
O documento que define o que é o código aberto foi derivado inicialmente do “Guia Debian de Software Livre”, escrito originalmente por Bruce Perens. Este guia continha os fundamentos básicos para a distribuição Debian do Linux. O documento original foi refinado e modificado, com a contribuição dos desenvolvedores da Disbribuição Debian GNU/Linux , fato ocorrido em junho de 1997.
Em fevereiro de 1998, este documento foi mais uma vez revisado e as referências específicas ao nome Debian foram removidas, tornando-se a definição de software de código aberto da Open Source Initiative (OSI,2005).
Esta sugestão de definição passou por um processo de discussão entre aqueles que defendiam os ideais do software livre e aqueles que entendiam que o melhor seria o código aberto.
Para a FSFE (2004), a terminologia "Open Source" refere-se a ter acesso ao código-fonte, mas este acesso é apenas um requisito de duas das quatro liberdades que definem o software livre, fazendo com que muitas pessoas não percebam que apenas o acesso ao código-fonte não é suficiente, por isso ainda considera o termo “Software Livre” mais abrangente. (Detalhes são apresentados na seção 3.3)
Assim, enquanto o software livre está ligado à filosofia de desenvolvimento, referindo-se a questões econômicas, políticas e sociais, indo além da garantia dos direitos de uso e acesso ao código fonte; o código aberto se concentra em determinar regras que possibilitem que o código fonte do
software o acompanhe quando este for distribuído.
3.2.2 Definição de Código Aberto e seus termos de distribuição
De acordo com Perens (1999, p. 171), a “Open Source Definition” é uma lista de direitos para os usuários de computador, definindo certos direitos que uma licença precisa garantir para que seja certificada como Open Source. Perens (1999, p.177) escreve que a Open Source Definition não tem a intenção de ser um documento legal, nem é por ela mesma uma licença de
software. É uma especificação de quais são as permissões que precisam existir
em uma licença de software para que ela seja definida como Open Source. Os termos de distribuição dos programas de código aberto segundo a OSI (2004), precisam estar de acordo com os seguintes critérios:
1 – Distribuição livre: a licença de distribuição não deve restringir a
nenhuma das partes interessadas de vender ou ceder o software como componente agregado à outra distribuição contendo programas de várias fontes diferentes. A licença não deve cobrar direitos de propriedade ou outras taxas pela venda do programa (SANDER, 2004).
2 – Código Fonte: o programa precisa incluir o código fonte, assim
compilada. Quando, por algum motivo, o programa não tiver o código fonte distribuído junto com a aplicação, isso deve estar bem especificado, mas deve existir uma forma de se poder obter uma cópia das fontes via internet, sem custo algum para o usuário. O código fonte dever ser a forma preferida pelo programador para modificar o programa. Não são permitidas formas intermediárias de código, como uma saída do pré-compilador ou tradutor, bem como não é permitido dificultar a compreensão (ofuscar) o código fonte do programa (OSI, 2004).
3 – Trabalhos derivados: de acordo com a OSI (2004), as licenças
precisam indicar as modificações e os trabalhos que derivaram do programa original e disponibilizar as licenças sob os mesmos termos da licença do software no qual as modificações ou trabalhos derivados se basearam.
4 – Integridade do código fonte do autor: segundo Sander (2004),
este critério estabelece que somente é possível restringir a distribuição do código fonte em forma modificada se ela permitir a distribuição de atualizações junto com o código fonte original com o objetivo de modificar o programa durante a instalação. A licença pode também exigir que o programa modificado tenha diferentes nomes ou diferentes versões do software original, e também deve permitir explicitamente a distribuição do software compilado, a partir do código fonte modificado.
5 – Não discriminar grupos ou pessoas: este critério estabelece que a
licença não deve fazer discriminação a nenhuma pessoa, ou grupo de pessoas (OSI, 2004).
6 – Não discriminar campos de interesse: a licença não deve
restringir o uso do programa a um campo de interesse específico, seja ele comercial ou não. (SANDER, 2004).
7 – Distribuição da licença: os direitos vinculados ao programa
aplicam-se a todos aqueles aos quais o programa é distribuído, sem que seja necessária uma licença adicional para cada um deles. (OSI, 2004).
8 - Licença não deve ser específica para um produto: para a OSI
(2004), os direitos vinculados a programas não devem depender dos programas que fazem parte de uma distribuição em particular, ou seja, se os programa foram extraídos a partir de uma distribuição e usados ou distribuídos com os termos da licença do programa, todos aqueles a quem os programas foram redistribuídos devem ter os mesmos direitos concedidos aos que obtiveram o programa originário.
9 – A licença não deve restringir outro software: segundo este critério
a licença não deve impor restrições a outro software que é distribuído juntamente com o software licenciado. Por exemplo, não é possível obrigar que todos os aplicativos disponíveis por meio de um determinado site, sejam de código aberto porque um dos software ali disponível é. (OSI,2004).
10 – Licença deve ser neutra em relação à tecnologia: a OSI (2004),
estabelece que a licença não deve estar vinculada a uma tecnologia, estilo ou interface. O objetivo aqui é não permitir que acabe existindo um vínculo entre licença e a forma como o programa é distribuído, por exemplo: permitindo somente a distribuição através de cd-rom, ou criando um determinado software que não possa ser modificado para aceitar uma interface que não seja gráfica, ou funcionar fora do ambiente
web.