IRPF2007 versão Java prestes a se tornar Livre?!?
Alexandre Oliva
lxoliva en fsfla.org
Dom Mar 25 17:24:38 UTC 2007
Então...
Tanto a Receita Federal quanto alguns advogados têm batido na tecla de
que eu não preciso me preocupar ao rodar o IRPF2007, mesmo não tendo
uma licença, pois a licença é implícita.
O raciocínio, em minha humilde opinião tortuoso, é de que, já que o
porograma está disponibilizado pela própria SRF na Internet, todo
mundo tem permissão para executá-lo.
E para que mais, me pergunto?
Fazer o download e tirar uma cópia pro vizinho, também pode? Se isso
viabiliza que outras pessoas façam as suas declarações, me parece que
pode também, né?
E colocar num mirror, ou disponibilizar na minha página, será que
também pode? Segundo a lei de direito autoral brasileira, distribuir
e publicar exigem permissões diferentes, mas me parece que dá pra
estender o argumento também, e não vejo como faria sentido a SRF se
opor à distribuição ou publicação do programa que ela disponibiliza a
quem quer que vá baixar do site dela.
E modificá-lo, pra que ele funcione nas plataformas de que disponho,
pode?
Como se sabe, eu baixei a versão Java e comecei tentando compilar.
Não rolou, veja os últimos erros, mais relevantes, na tela capturada,
no topo da minha página pessoal (URL na assinatura).
Pelo mesmo argumento, se a modificação pode viabilizar meu uso do
programa, eu poderia fazê-la.
Pensando assim, baixei um descompilador Java Livre
(http://jrevpro.sourceforge.net/), compilei-o com o GNU Compiler for
Java e comecei a transformar os .class de volta em .java.
O sucesso não foi estrondoso, mas fiquei contente de saber que não só
o código Java não foi ofuscado (pelo menos até onde pude ver), como
também tinha até informação de debugging, o que permitia a recuperação
dos nomes de variáveis locais. Mais um ponto de transparência pra
Receita Federal. (Digo mais um porque já publicaram os formatos dos
arquivos, pro pessoal da psl-brasil que não tá acompanhando a lista da
FSFLA!)
Pois então, dos 3394 arquivos .class dentro do IRPF.jar e dos outros
.jar que ele contém (sem contar o jhall.jar, que aparece como outro
.jar separado no IRPF2007v1.0.zip), apenas 328 apresentaram algum erro
na descompilação. Não sei dizer se os outros 90% foram descompilados
corretamente, mas já é pelo menos um começo.
De fato, o mais importante, que é o código que está em serpro e srf
(já que o resto já é quase tudo Software Livre mesmo) descompilou com
um índice ainda menor de problemas: dos 1224 arquivos .class, apenas
84 falharam na descompilação.
Nessa altura, consertar o descompilador para termos um código fonte
completo parece factível. E daí, consertá-lo para que funcione em
nossa plataforma é um pulo.
E aí, poderemos estudar o software, utilizando apenas recursos
técnicos e informação que a IRPF já nos forneceu.
E podemos fazer modificações para que ele funcione onde quisermos, e
certamente não haverá objeção à distribuição dessas modificações, pois
isso permitirá que mais cidadãos efetuem a declaração de forma
eletrônica, sem violar suas convicções filosóficas.
Ou seja: parece que temos acesso a *um* código fonte, ainda que sem os
comentários (suponho) do código fonte original, e temos permissão
para:
(0) executar
(1) estudar e adaptar
(2) redistribuir
(3) distribuir as modificações
Soa familiar? Pois é, são as 4 liberdades do Software Livre.
Em outras palavras, podemos criar um IRPF2007 Livre.
A pergunta que não quer calar é por que, se temos as permissões, de
maneira implícita, e conseguimos reconstruir um código fonte
compreensível a partir dos binários distribuídos, a Receita Federal se
recusa a distribuir os códigos fontes originais, que tornariam o
processo todo imensamente mais simples para nós?
É fato conhecido da Engenharia de Software que código para publicação
recebe mais atenção e cuidado que código que vai ficar escondido, o
que por sua vez melhora a qualidade do software, porque ninguém gosta
de mostrar que fez coisa feia. Será por aí?
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
Más información sobre la lista de distribución Softwares-impostos