Adonay Felipe Nogueira

Se quiser ajudar a humanidade, não instale ou recomende dados funcionais não livres para ela

Adonay Felipe Nogueira at

Nota: Artigo originalmente publicado em 2016-02-05. Mas esta versão está atualizada.

Introdução

O movimento do software livre pertence ao período contemporâneo da filosofia, e por este motivo, está sempre evoluindo, assim como o software em si.

Porém, desde quando comecei meus estudos sobre o movimento filosófico do software livre, tenho notado que existe uma disparidade entre os termos usados aqui no Brasil e os termos usados pelos ativistas do mundo todo. Exceto por alguns grupos menores, parece que o ativismo do software livre aqui no Brasil simplesmente perdeu força, e com esta perda de força, perdeu-se a integração direta com os ativistas espalhados pelo mundo. Não me refiro somente às figuras mais conhecidas do nosso ativismo, mas também aos grupos organizados no LibrePlanet e aos grupos responsáveis pelos projetos de alta prioridade, sem contar a perda de integração com os projetos hospedados em todos os espaços que a própria Free Software Foundation e suas organizações irmãs disponibilizam para todos, independente do idioma, tais como os servidores de repositórios de desenvolvimento colaborativo e os times de tradução.

Para tentar recuperar o tempo perdido, e também abrir espaço para futuros debates sobre o tema, inclusive com outros ativistas ao redor do mundo, este artigo tenta fazer uma distinção entre dados funcionais e não funcionais. Assim, o objetivo aqui é fazer com que se pense um pouco além do software sempre que os ativistas brasileiros falarem em "software livre". Nosso movimento pode continuar sendo chamado de "movimento do software livre" sem problemas, mas é importante dizermos para as pessoas que ele abrange mais do que isso. Notando que ele não abrange a cultura como um todo, apenas parte dela.

Deve-se notar todavia que este artigo não deve ser interpretado como tentativa de criar mais um movimento filosófico distinto, mas sim de complementar o movimento filosófico do software livre, fazendo parte dele. Sendo assim, a sociedade digital deve ter todas as liberdades essenciais que são usadas no software livre, nos dados funcionais.

O que são dados funcionais?

Devido ao fato de que ainda não vi nenhuma literatura profunda capaz de definir este conceito de forma exata, a única forma de defini-lo até o momento parece basear-se em observações empíricas.

Sendo assim, baseando-se em minhas observações empíricas, os dados funcionais podem ser definidos da seguinte forma:

  • Aquilo que obedece uma estrutura lógica (se, caso, até, ou, e)
  • Aquilo que é usado para propósitos práticos.

Em todos os casos, é importante observar traduções e documentações de dados funcionais também são dados funcionais.

Além disso, é necessário pesquisar a validez de uma possível adição a esta lista, onde: também se pode considerar como dado funcional tudo aquilo que, ao ser usado por outro dado funcional, pode modificar o comportamento do usuário caso o mesmo dado fosse alterado ou substituído. Porém, esta proposta precisa de uma discussão mais profunda, visto que duas das referências que usei para estas observações parecem divergir. A divergência ocorre entre a GNU Free System Distribution Guidelines e a seção Raw Material, de GPL Compatibility Use Cases (esta que foi feita por Maciej Pendolsk, falarei desta diferença na seções dos exemplos e sobre o estudo de caso superficial.

Exemplos (i.e., colocando a cabeça para funcionar)

Sem considerar a contribuição feita por Maciej Pendolsk, temos algumas coisas que sabemos que são dados funcionais de antemão:

  1. Programas de computador.
  2. Documentação de programas de computador.
  3. Traduções de documentação de programas de computador.
  4. Traduções de programas de computador.
  5. Scripts interpretados em geral.
  6. Fontes de texto.
  7. Perfis de cores.
  8. Planilhas eletrônicas.
  9. Dados de sombreamento. Abra o Blender, e coloque o modo de renderização baseada em ciclos, depois adicione um objeto qualquer, abra o editor de nós, e peça ao Blender que use os nós na superfície do objeto, e observe que é possível construir grupos de nós que atuarão com uma estrutura lógica dentro do projeto.
  10. Designs de hardware.
  11. Mapas para jogos e modelos 3D, apenas quando estes incluírem scripts diversos (e.g.: de dados de sombreamento).
  12. Desenhos 3D que são usados para fazer objetos reais para uso prático. Como garfos, facas, colheres, pratos, xícaras e canecas. Trabalhos puramente decorativos não se encaixam aqui.

Porém, se considerarmos a contribuição feita por Maciej Pendolsk, abre-se espaço para uma certa subjetividade que depende muito de como um dado, aparentemente não funcional, é usado. Segue alguns exemplos:

  • Todos os mapas para jogos. Pois quando se altera o mapa, o comportamento do jogador é alterado.
  • Arquivos de áudio podem ser dados funcionais caso sejam usados, por exemplo, em jogos onde o cenário do jogo muda conforme o arquivo usado.
  • Arquivos de imagem podem ser considerados como dados funcionais caso eles indiquem algo importante e não sejam acompanhados por um texto descritivo alternativo, como as imagens usadas em mapas cartográficos para jogos.

Lembrando que esta contribuição ainda deve ser cautelosamente discutida, e não deve ser tomada como algo definitivo.

A busca pela diferença entre software livre, e software de [código-]fonte aberto

Desde 2009 venho estudando os dois movimentos, mas apesar de ter me considerado um ativista do software livre em 2011, apenas em 2016 penso ter entendido a diferença entre os dois movimentos, tudo graças a diversas trocas de ideias, e de e-mails.

A diferença está mais além da licença e dos arquivos-fonte

Apesar dos proponentes do modelo de desenvolvimento de [código-]fonte aberto realmente se preocuparem com as licenças que usam, e de haverem algumas diferenças entre as licenças livres e as licenças de [código-]fonte aberto, estas parecem ser as principais diferenças entre os proponentes do movimento filosófico do software livre, e os proponentes do modelo de desenvolvimento de [código-]fonte aberto:

Proponentes do movimento filosófico do software livre

  • Avaliam os arquivos-fonte, as licenças, e a ideologia dos projetos.
  • Ao divulgar seu ativismo, as liberdades essenciais são mais importantes que funcionalidades, estabilidade, facilidade de uso, segurança, privacidade e anonimato.
  • Negam sublicenciar seus projetos copyleft sob uma licença permissiva para permitir projetos derivados não livres.
  • Seja licenciando seus projetos sob uma licença copyleft, ou sob uma licença permissiva, reforçam aos projetos derivados não livres a importância de preservar as liberdades essenciais. Ou seja, entram em contato de forma amigável para mostrar o que pode ser feito para resolver isto, e anunciam os problemas do projeto derivado não livre caso tenham sido ignorados na tentativa de estabelecer uma comunicação amigável.
  • Negam fazer, ou negam que projetos derivados não livres façam, implementações de algemas digitais (que impedem a liberdade de uso das adaptações de um dado funcional). Exemplos de algemas digitais: DRM (gestão de restrições digitais, do inglês: digital restrictions management), boot restrito (que é diferente do boot seguro) e assinaturas nos dados funcionais (que não podem ser facilmente gerenciadas para cada dado funcional pelo próprio usuário).
  • Preferem licenças copyleft, mas geralmente pensar cautelosamente sobre qual tipo de licença usar (permissivas vs. copyleft).
  • Preferem projetos com licenças copyleft, e que objetivam ser livres.
  • Sabem da importância das licenças copyleft.
  • Podem usar dados funcionais não livres para algumas tarefas pessoais, mas isso quase sempre desperta neles uma possibilidade de contribuir para um projeto que objetive substituir tal dado funcional não livre.
  • Não redistribuem, recomendam, ensinam ou instalam dados funcionais não livres à sociedade em geral. Eles recomendam apenas para um público seleto interessado em contribuir para um projeto que objetive substituir tal dado funcional não livre. No caso dos designs de hardware, visto que eles não são um objetivo primário do movimento, não há uma preocupação imediata sobre o que recomendar ou não, mas eles geralmente recomendo aquilo que é certificado via Respects Your Freedom ou que tem bom nível de compatibilidade no catálogo de edição colaborativa do projeto H-node.
  • Podem ler/ver/assistir/ouvir dados não funcionais não compartilháveis (mais sobre isso na seção sobre os dados não funcionais).
  • Não redistribuem ou recomendam dados não funcionais não compartilháveis.

Proponentes do modelo de desenvolvimento de [código-]fonte aberto

Continuando...

Porém vale enfatizar que na maioria dos casos, um proponentes do movimento filosófico do software livre, principalmente os novatos (eu incluso) acabam herdando algumas características dos nossos rivais pela consciência pública. Assim, é importante sempre tentar mostrar a diferença entre os dois proponentes, para que os novatos tomem a posição correta.

Além disso, a ideologia por trás dos projetos pode comprometer a classificação do projeto como sendo livre ou não livre, apesar disso acontecer raramente.

Voltando às questões relacionadas às licenças, é importante notar que muitas licenças não livres não são de [código-]fonte aberto.

E os dados não funcionais: "cultura livre", ou "cultura do software livre"?

Como já expliquei brevemente em um tópico no fórum inglês do projeto Trisquel, apesar de reconhecer a decisão sábia da Definition of Free Cultural Works de ter aplicado as liberdades essenciais para outros dados, não considero este objetivo como algo primário visto que seguir tal definição seria, logicamente, mais do que rejeitar uma licença não livre, mas sim rejeitar também qualquer trabalho cultural que não tenha os arquivos fontes disponíveis em um formato usado preferencialmente por software livre.

Mas, acima de tudo que escrevi no parágrafo anterior, segundo Richard Stallman a ausência de todas as liberdades essenciais descritas pela Definition of Free Cultural Works não implicam em problemas morais ou éticos extremos. Porém, existe uma liberdade essencial, ou "parte" dela, que os dados não funcionais devem ter: a liberdade de redistribuir cópias exatas do dado não funcional não comercialmente.

Mas espera ai... Eu já vi isto em algum lugar? ...

De fato, esta "metade" da liberdade essencial mínima é o que muitos buscam quando estão fazendo cópias não autorizadas, ou seja, na linguagem erroneamente difundida: quando fazem "pirataria".

Mas, eles não têm autorização, então eles não têm tal liberdade!

De fato, e é por isso que essa liberdade é tão importante para os dados não funcionais.

Não obstante, é importante notar que, o movimento filosófico do software livre não ignora projetos que respeitam a Definition of Free Cultural Works. Ele apenas considera este objetivo como secundário, assim como considera secundário o desenvolvimento de designs de hardware livre.

Critérios diferentes para projetos com abrangências diferentes

Antes de começar a rodada de "exceções daqui" e "exceções dali", é necessário considerar que um dado funcional livre pode recomendar ou sugerir outro não livre, mas ele não pode depender deste para funcionar ou para ser preparado/construído.

Ah! Então é por isso que vocês não recomendam software de código aberto e livre que é feito apenas para Windows ou para Mac OS?

Sim!

Feitas as considerações preliminares, é necessário observar que existem diferenças entre a forma com que o movimento filosófico do software livre avalia os dados funcionais em geral (documentado por todo o material disponibilizado no site do projeto GNU) e as distribuições de sistemas livres (documentado através da GNU Free System Distribution Guidelines), eis algumas delas:

  • Apesar de um dado funcional livre poder recomendar ou sugerir outro não livre, as distribuições de sistemas livres devem retirar estas recomendações e sugestões. Usando da mesma referência, elas também não devem recomendar/fornecer repositórios que não tenham uma política de preservação das liberdades essenciais quanto aos dados funcionais.
  • Apesar de considerarmos que os dados não funcionais devem dar, pelo menos, a liberdade de redistribuição não comercial de cópias exatas (que é, na verdade, metade de uma das liberdades essenciais). Os dados não funcionais presentes nas distribuições de sistemas livres devem, na verdade, entregar a liberdade de redistribuição de cópias exatas integralmente (ou seja, tanto para fins comerciais quanto para não comerciais).

Estudo de caso superficial: o projeto Ubuntu

O projeto Ubuntu distribui vários dados funcionais não livres, além de distribuírem vários dados não funcionais não redistribuíveis. Como exemplos, podemos citar:

  • O pacote frogatto-data, que contém arquivos de configuração que, na verdade, são dados funcionais pois possuem informações lógicas (em diversos diretórios, tais como /usr/share/games/frogatto/data e /usr/share/games/frogatto/modules/frogatto/data), mas que estão sob uma licença que restringe liberdade de redistribuição (comercial e não comercial), tanto dos dados funcionais quanto dos dados não funcionais (o que pode ser comprovado lendo /usr/share/doc/frogatto-data/copyright).
  • O Firefox não é software livre visto que, além de dar suporte à DRM, e da Mozilla ter uma política de tramdemark que impede a redistribuição comercial das cópias originais do Firefox, este também foi desenvolvido de tal forma que complementos adaptados pelo próprio usuário não podem ser usados por este, exceto se este conseguir uma assinatura.
  • Além disso, o projeto Ubuntu não parece empenhado em retirar de suas versões do Firefox, as recomendações que este faz ao seu repositório de dados funcionais não livres.
  • O pacote icc-profiles, que contém perfis de cores diversos, está sob uma licença que restringe a alteração de alguns dos arquivos/perfis fornecidos, além de restringir a redistribuição destes (o que pode ser comprovado lendo /usr/share/doc/icc-profiles/copyright).

Se considerarmos a contribuição feita por Maciej Pendolsk, pode se observar que o pacote doom-wad-shareware possui mapas que são dados funcionais que estão sob uma licença que proíbe adaptações (o que pode ser comprovado lendo /usr/share/doc/doom-wad-shareware/copyright).

O kernel Linux e o projeto GNU Linux-libre

Se, e apenas se, desconsiderarmos que o projeto Linux-firmware segue sendo distribuído dentro do projeto Linux (basta observar o diretório firmware para saber do que estou falando), ou que os dados funcionais do projeto Linux-firmware são apenas uma recomendação feita pelo projeto Linux, então ai sim podemos considerar que o código-fonte do Linux é aberto e livre. Do contrário, nesta simples vertente relacionada ao projeto e sua licença, ele ainda não é.

Mas ainda é necessário observar a vertente ideológica, onde ao passo que antigamente os donos/proprietários do projeto Linux ignoravam os projetos derivados não livres, atualmente eles estão começando a trabalhar em conjunto com a Software Freedom Conservancy para não somente resolver este problema, mas também as violações da GNU General Public License versão 2 dentro do próprio projeto Linux. Mas é importante observar que este objetivo ainda não foi plenamente alcançado, ainda mais se considerarmos que podem demorar anos para que o projeto Linux comece a se pronunciar publicamente, seja elogiando os projetos derivados que entraram em conformidade, seja anunciando o descaso dos projetos derivados.

Ah! Mas, se o código-fonte do projeto Linux é aberto e também é livre, por que precisamos do GNU Linux-libre?

A resposta para esta pergunta depende muito do ponto de vista, mas ela é geralmente afirmativa, ou seja, no sentido de que o projeto GNU Linux-libre ainda é muito importante.

Para entender isso é necessário reler atenciosamente a GNU Free System Distribution Guidelines depois que terminar, leia de novo, depois, mais uma vez, e por fim, outra vez... Até você perceber que para cada seção daquele documento, você deve multiplicar o trabalho por pelo menos mil vezes (esta é apenas uma estimativa do número de pacotes que uma distribuição de sistema qualquer pode ter).

De modo geral, o uso do GNU Linux-libre é recomendável, mas não é uma obrigação. Você pode tanto usá-lo a partir do código-fonte do kernel Linux que o projeto GNU Linux-libre já libertou, quanto usar apenas dos scripts de libertação do código-fonte do kernel Linux feitos pelo projeto GNU Linux-libre, e aplicar tais scripts em cima de um kernel Linux de sua escolha. Ou ainda fazer tudo manualmente, sem ajuda dos scripts disponibilizados pelo projeto GNU Linux-libre (necessário nos casos em que os scripts do projeto GNU Linux-libre não sejam adequados para sua tarefa em específico, como exemplo temos o caso do projeto Replicant, que pega o kernel CyanogenMod e retira as coisas não livres manualmente). Os caminhos são vários, tudo depende do objetivo da distribuição.

Licença da publicação (esqueci de colocar quando publiquei): CC-BY-ND 4.0

Adonay Felipe Nogueira at 2017-01-08T00:03:56Z