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