O Paradoxo do Navio de Teseu no mundo open source. |
O NAVIO DE TESEU
Teseu é aquele maluco da mitologia grega que enfrentou o Minotauro (o maluco é bravo mesmo). Mas o que nos interessa aqui é sobre o paradoxo criado em torno dele. Em Vidas Paralelas, Plutarco propõe que se Teseu partiu com seu navio em uma viagem (que durou uns 50 anos) e ao longo dessa viagem seu navio precisou de manutenção (é obvio) ao ponto que ao final da viagem, todas as peças originais haviam sido substituídas, surge a questão:
Trata-se do mesmo navio ou de outro?
E esse paradoxo virou uma bagunça; Heráclito e Aristóteles afirmaram que sim, aí vem Gottfried Leibniz afirmou que não; Thomas Hobbes piora ainda mais o assunto propondo que se remontassem o navio com as peças originais (por que alguém iria querer montar a porcaria de um navio com as peças velhas? Alias, quem seria desocupado o suficiente para ficar procurando estas peças?) se ambos os navios são o mesmo ou se são navios diferentes (aí que bugou a cabeça de todo mundo mesmo); John Locke já mete o bicão falando de meia furada (a conversa mais paralela que eu já ouvi) e o assunto foi tão longe que teve gente até mesmo falando de teletransporte...
Esse paradoxo foi tema no ultimo capítulo da série Wanda Vision quando ambos Visões (a versão projetada por Wanda e o branco que foi reconstruído a partir do corpo original do Visão) lutavam entre si. O versão branca de Visão foi programada para destruir o Visão porém, ele é o visão; o original. Daí surge o debate entre os dois sobre o navio de Teseu e ambos chegam a conclusão de que os dois são o Visão (ou talvez não, sei lá. Assunto que vira uma bagunça na mente).
Visão vs Visão em Wanda Vision. |
Bom, deixando essa balela filosófica de lado porque eu não tenho um pingo de interesse em falar de meia furada; vamos aproveitar a ideia do navio e substituir por código fonte.
Então suponha que você seja o autor de um programa open source*; porém alguém cria um fork do seu programa e ao longo do tempo o código fonte foi tão modificado ao ponto que não há mais uma só linha do seu código original. E agora faço a mesma pergunta do navio:
Trata-se do mesmo programa ou de outro?
Bom de acordo com a lei, quando um programa é totalmente modificado, não se trata mais do mesmo programa. Não há como reivindicar direito sobre o código fonte de outras pessoas.
Externamente enxergamos o mesmo programa com funcionalidades semelhantes porém, internamente ambos são programas totalmente diferentes. Para entender melhor, vamos analisar dois projetos que passaram por situações semelhantes ao longo de sua história. São eles o 4.4BSD-LITE e o Busybox.
O CASO 4.4BSD-LIT vs USL
Como já contei em uma live, a BSDI (Berkeley Software Design, Inc) tomou um processo da AT&T simplesmente por seu número de telefone conter a palavra Unix...1-800-ITS-UNIX. Pois é, um simples numero de telefone foi motivo o suficiente para a BSDI tomar um processo da AT&T que se estendeu por um bom tempo (em partes por culpa da própria galera do BSD).
Ou seja, com a remoção de todo código da AT&T, os BSDs continuam sendo Unix porém, não mais o Unix da AT&T, Bell Labs, USL, Open Groups ou seja lá quem for. Não há como reivindicar direitos sobre os BSDs por não conter mais código fonte de autoria dessas instituições. No caso eles se tornaram outro Unix; Unix independente do original.
Busybox e o caso GPLv3
O autor do Busybox é Bruce Perens; primeiro presidente a assumir o Debian após a saída de Ian Murdock. Bruce Perens é também o responsável pelo logo e pela ideia de codinomes do Debian serem inspirados na animação Toy story.
Bruce desenvolveu o Busybox a partir de comandos já existentes, originados de outros pacotes como o Core utils do GNU e o Util-linux do... Linux.... A ideia era desenvolver uma ferramenta (um terminal de comandos) tendo somente os comandos necessários para que o kernel Linux pudesse utiliza-lo durante o processo de boot. Tanto que encontramos o Busybox dentro do initrd ou do initramfs.
Porém, Bruce Perens deixou o projeto Busybox antes que ficasse pronto sendo então assumido por outros como Erik Andersen. Erik Andersen foi quem tornou o Busybox funcional para que pudesse ser utilizado como terminal de comandos padrão (assim como vemos no Alpine Linux e em muito roteadores). Após Erik Andersen, quem assumiu o projeto como mantenedor foi Rob Landley (o autor do terminal de comando toybox que é encontrado no Android desde a versão 7, no Tizen e em vários outros projetos).
10 anos depois que o projeto se encontrava consolidado, com ferramentas funcionais e todos os problemas judiciais solucionados, eis que Bruce Perens surge de volta ao projeto como um herói (e até levando créditos pelos trabalhos de outras pessoas) e começa a querer ditar regras. Uma delas é que o Busybox deveria ser migrado para a licença GPLv3.
Um dos motivos apresentados a Bruce Perens para que não ocorresse tal migração de licença foi que já não havia mais código do projeto GNU no Busybox. Então não haveria como fazer tal exigência.
Passe o cursor na imagem para ler a tradução (texto original clicando aqui) |
Um dos argumentos apresentados por Brunce Perens foi que ele era o autor do projeto e eles iriam fazer o que Richard Stallman mandasse.... Foram 9 meses de debate sobre o assunto que não levou a lugar nenhum. Houve até mesmo consulta de advogados (da qual Bruce Perens não compareceu).
Rob landley chegou a passar dias analisando e comparando o código entre versões do Busybox para provar que existia mais códigos de Bruce Perens presente no projeto. A equipe do Busybox Sugeriu que Bruce perens fizesse um fork de qualquer versão do projeto para que atendesse às suas necessidade e Bruce até mencionou que faria porém... No final das contas, o BusyBox permanece até hoje sob GPLv2 e... Cadê o fork do Bruce Perens?
Conclusão
As regras apresentadas aqui não são exclusivas a forks ou a software livre e de código aberto. Elas também são aplicáveis tanto ao próprio projeto ou até mesmo software proprietário. Você pode ter por exemplo um programa e modificá-lo por completo que ele também deixará de ser o mesmo programa.
Como exemplo, reparem as duas imagens abaixo. tratam-se do código fonte do comando fsck. A primeira apresentada é do código de autoria do Linus Torvalds de 1991 e 1992 (quando foi lançada a versão 0.11 do kernel) e está disponível no util-linux-ng-2.13.0.1. Já a segunda está disponível no util-linux-2.38-rc1 e possui seu código totalmente modificado por Ted T'so, Karel Zak e outras pessoas.
Mas mesmo que um programa tenha dado origem a outro, ambos são considerados programas diferentes se totalmente modificado (ambos possuem a mesma origem, o mesmo propósito, funcionalidades iguais, mas são programas diferentes), não tendo ao autor do original créditos e direitos sobre o posterior; esse é o foco principal deste assunto; tratar da questão de direitos autorais sobre o código fonte (sim, software livre e de código aberto também acabam agregando direitos autorais a seus autores). Os créditos são sempre reservados a cada um que realizou alguma contribuição (todos são autores e todos merecem seu reconhecimento).
Mas se me perguntarem sobre o navio; se trata-se do mesmo ou de outro. Para mim trata-se de um navio pow... Vai entender o que passa na cabeça dos seres humanos. Não é a toa que ficar buscando inteligência fora da terra...
Busy busy busybox
Nenhum comentário:
Postar um comentário
Viu algum erro e quer compartilhar seu conhecimento? então comente aí.
Observação: somente um membro deste blog pode postar um comentário.