Claudio André

Que tal distribuir o programa do IRPF 2017 de outras formas?

Atualizado: 02/03/2017 11:00

Não é novidade que novas formas para se distribuir e empacotar software para Linux estão em desenvolvimento. Destaco o Snap e o Flatpak [1,2]. Em poucas palavras, são duas propostas sobre como distribuir aplicações Linux em uma ampla gama de distribuições distintas. Em resumo, ambas são tecnologias para distribuir aplicações de forma segura e conteinerizada [3].

Como um estudo de caso, criei um pacote Snap do IRPF 2017 e o publiquei na loja da Canonical. Um pacote Snap é um arquivo zip chique que contém um aplicativo juntamente com suas dependências e uma descrição de como ele deve ser executado com segurança em seu sistema.

Quero destacar que não vejo impedimento para que um pacote Flatpak do IRPF 2017 também seja criado. Simplesmente, fiz uma escolha baseada em minha preferência pessoal (eu uso Ubuntu) [4].

IMPORTANTE
  • Empacotei os mesmos binários presentes no zip disponível no site da Receita. Confirme isto usando diff;
  • Eu instalei e estou usando o Snap do IRPF 2017 que criei. Mas, NÃO estou tentando te convencer a usá-lo;
  • Meu objetivo é convidar aqueles que me lêem a discutir estas novas possibilidades;
  • Eu NÃO tenho autorização para redistribuir o software da Receita;
  • Confira o "roteiro" de criação do pacote acessando o arquivo .yaml neste site.

Como instalar e usar?
  • Testei no Ubuntu 16.04 LTS;
  • sudo apt-get install snapd # a depender de sua distro;
  • sudo snap install irpf2017;
  • O programa aparecerá no menu; Caso prefira, digite irpf2017 no terminal.

Eu usei o pacote Snap para fazer minha declaração de IR
  • Eu importei os dados da declaração de 2016;
  • Preenchi os dados referentes a 2017;
  • Fiz a impressão (visualizar, não a impressão em papel [5]) da declaração e do recibo de entrega;
  • Salvei o recido de entrega PDF em uma pasta qualquer no meu $HOME;
  • O que NÃO FUNCIONOU: o envio da declaração para a Receita [6];
  • Além do problema no envio, nenhum outro problema foi encontrado;
  • Portanto, o uso de caso possível seria preencher os dados com o Snap e transmitir em outro computador [7].

Por que criar um pacote é importante? Ou útil?

A resposta é simples: o pacote criado possui TODAS as dependências necessárias para sua execução, inclusive as dependências gráficas. O usuário não precisa se preocupar em descobrir, selecionar, ou resolver problemas de instalação do JAVA. Ou de quaisquer outras bibliotecas.

Caso o mantenedor do pacote submeta novas versões, a atualização é automática, sem o risco de se sobreescrever os dados já salvos na(s) versão(ões) anterior(es).

Portanto, se a Receita publicasse o pacote desta forma, não haveria nenhuma necessidade de tutoriais explicando como obter o JAVA, qual versão se deve instalar, ou qualquer coisa assim.

Criar pacotes para outras arquiteturas como ARM (armhf ou arm64) não é difícil. Na realidade, eu tenho pacotes criados para todas as arquiteturas suportadas pela Canonical.

Mas, esta é só minha avaliação. Faça seus testes e descubra qual a sua!



[1] A Canonical está investindo bastante no desenvolvimento do "ambiente" Snap.
[2] O Flatpak atraiu a atenção de alguns distribuidores, como a Endless e a Steam.
[3] Esclareço minha opinião sobre as tecnologias listadas:
     - A solução de engenharia de software em uso no Flatpak é superior à solução da Canonical. Por outro lado,
     - O ambiente Canonical (loja de aplicativos, build servers disponíveis, base de usuários, etc) é um grande atrativo.
[4] Além disto, eu aposto em um grande futuro para o Ubuntu Snap em IoT.
[5] Como eu disse anteriormente, a aplicação executa em um ambiente seguro:
     - O acesso às portas USB, serial, ..., é vedado por padrão. O desenvolvedor precisa solicitar este acesso via .yaml.
[6] A Canonical decidiu que não é seguro acessar diretórios "ocultos" de $HOME:
     - No caso, .java/ e .receitanet/ (entre outros) foram acessados pelo programa do IR e este acesso foi bloqueado.
     - Este é um exemplo cristalino de decisão de projeto equivocado da Canonical.
[7] Existem alternativas para superar os limites de segurança. Porém, elas não são adequadas ao usuário final.

© 2017 Claudio André. Todos os direitos reservados