Flatpak retoma seu desenvolvimento rumo a um futuro com muitas novidades

Após um período difícil, o projeto Flatpak recupera estabilidade e muda o foco com o pré-lançamento da versão 1.17, após o desenvolvimento desacelerar no início deste anos e as contribuições abertas se acumulando.

Felizmente, o desenvolvimento foi reiniciado graças aos esforços renovados de colaboradores antigos, além de novos mantenedores que assumiram a responsabilidade de revisar e fundir códigos de forma mais ativa.

O projeto foi reorganizado, seu processo de revisão foi simplificado e um ritmo ativo de desenvolvimento foi restabelecido. Como resultado, o pré-lançamento da versão 1.17 tem o objetivo de preparar o terreno para uma versão estável ainda este ano, trazendo uma série de aprimoramentos técnicos e novas capacidades que tornarão a ferramenta mais confiável e mais fácil de integrar nas diversas distribuições Linux.

Entre as novidades estão a documentação atualizada, que finalmente foi revisada após anos de negligência, facilitando o trabalho dos desenvolvedores com a plataforma; a definição de aplicativos pré-instalados, permitindo que distribuições definam quais devem ser instalados ou removidos automaticamente; e o suporte aprimorado a imagens OCI, permitindo que se instale aplicativos diretamente de imagens OCI e remotos, um passo importante para o uso empresarial no RHEL 10.

Outro destaque é o modelo de permissões atualizado, que permite que os aplicativos adotem permissões mais restritivas, como o acesso a gamepads ou dispositivos USB, sem comprometer a compatibilidade com sistemas mais antigos. Isso também prepara o caminho para uma integração mais estreita com o PipeWire.

Além disso, o ecossistema mais amplo do Flatpak também está avançando. A ferramenta flatpak-builder foi atualizada, e o Flathub agora conta com verificações de conformidade de licenças aprimoradas.

Ao mesmo tempo, o trabalho continua em um novo serviço systemd-appd, que ajudará a autenticar e gerenciar instâncias do Flatpak em execução, um componente essencial para recursos futuros, como sandboxing aninhado, manipulação de mídia baseada em PipeWire e a eliminação do antigo proxy D-Bus.

Novos esforços também estão em andamento para melhorar a integração com o desktop. A especificação XDG Intents visa possibilitar uma comunicação mais rica entre aplicativos, incluindo recursos como deep-linking e geração de miniaturas.

Enquanto isso, um novo Portal de salvar/restaurar sessão e uma significativa reestruturação do backend no frontend do Portals simplificam a comunicação e reduzem a complexidade de maneira geral.

Por fim, embora algumas mudanças planejadas não tenham sido incluídas neste pré-lançamento, Wick confirmou que outra versão instável está prevista para breve, seguida de um lançamento estável até o final de 2025.

5 curtidas

Gostaria de aprender empacotar aplicações em Snap e Flatpak, porém parece que ninguém está ensinando fazer isso corretamente. Somente há conteúdo bem simplista sobre o assunto, mas tento fazer e nunca dá certo.

2 curtidas

Oi @anon76894998 !

Segue um tutorial oficial da Canonical que explica passo a passo como empacotar uma aplicação em Snap. Ele está em inglês, mas é bem direto e prático:

https://documentation.ubuntu.com/snapcraft/stable/tutorials/craft-a-snap/

A página ensina como empacotar uma aplicação simples em Python. Depois que você pega o jeito, o processo é bem tranquilo, na minha opinião, até mais simples do que criar um .deb.

Se você quiser se aprofundar ou ver algumas dicas extras, podemos abrir um tópico específico para isso. Tenho algumas anotações que fiz quando estava empacotando snaps e posso compartilhar lá.

4 curtidas

A mudança de direção me é bem agridoce. Uma das coisas que eu aprecio na “arquitetura” atual do Flatpak são os componentes reutilizáveis que ela fornece. O bwrap e o “antigo proxy D-Bus” (xdg-dbus-proxy) são usados também pelo Firejail e por vários scripts personalizados para confinar aplicativos ou mesmo serviços do sistema, e o uso desses componentes versáteis tornam ele capaz de rodar até em distros “esquisitonas” como o Alpine sem perder nenhuma das garantias de universalidade para os autores de aplicativos.

Tudo isso vai ser substituído pelo systemd-appd, que presumivelmente vai ser bem mais especializado e dependente de um meio externo específico. Sim, sei que faz sentido utilizar os “wrappers” dos mecanismos de sandbox do Linux já presentes no systemd e etc.


Fora que os novos recursos, em parte, canabilizam o nicho do Snap e o Podman/Docker.