A nova versão estável RPM 6.1.0 foi publicada em 11 de maio de 2026. O update traz diversas funcionalidades e correções que aprimoram a experiência de gerenciamento de pacotes, especialmente em relação ao bloqueio do keystore, ao processador de macros e ao suporte a assinaturas com tokens PKCS#11. As mudanças são relevantes para quem utilizava a série 6.0.x, já que várias regressões foram sanadas.
Principais novidades
Novo mecanismo de bloqueio do keystore
- O keystore agora utiliza um lock dedicado, separado do lock de transação.
- Essa alteração elimina o bloqueio de todas as consultas ao rpmdb durante transações, problema observado a partir da versão 6.0.0.
- Referência: #4110.
Reativação da busca NSS para usuários e grupos
- Por padrão, as consultas a usuários e grupos voltam a ser feitas via Name Service Switch (NSS), como nas versões anteriores ao 4.19.0.
- Caso necessário, ainda é possível desativar definindo as macros
%_passwd_pathe%_group_path. - Em operações
--root, a busca NSS permanece desabilitada. - Referências: #3994, #882.
Suporte a macros literais e “one‑shot”
- Nova sintaxe permite especificar modificadores entre
<e>ao definir macros, habilitando expansão literal (l) ou de uso único (o). - Detalhes em
rpm-macros(7). - Referências: #4145, #1155.
Opções avançadas para %define
%defineaceita agora os flags-e(expansão no momento da definição) e-g(escopo global).- Quando combinados, o comportamento equivale ao uso de
%global. - Referência: #4163.
Melhorias no processo de build
- O ambiente de script de compilação é exportado para o arquivo
rpmbuild.envdentro de%{builddir}, facilitando a replicação por ferramentas externas. rpmuncompress(1)passa a obedecer às opções derpm-common(8)e inclui suporte a arquivos CAR.- Utilitários
rpmuncompresserpm-setup-autosignforam adicionados ao$PATHpadrão, com links simbólicos mantidos em/usr/lib/rpmpara compatibilidade. - Mensagens de erro ao empacotar binários incompatíveis agora exibem nomes e tipos de arquivos, agilizando a depuração.
- O alvo
kpermite encurtar a execução dorpmbuilddireto para a fase%check. - Falhas por arquivos de patch ou fonte ausentes retornam erro de compilação com número da linha, corrigindo regressão da 4.20.0.
- Scripts Lua não mais travam quando executados fora de pacotes gerados pelo RPM.
- Referências: #3147, #3015, #4079, #4189.
Assinatura e verificação aprimoradas
rpmsign(1)passa a suportar assinatura de arquivos usando tokens PKCS#11.rpmkeys(8)agora garante que o código de saída não “estoure”, evitando retornos falsos de sucesso.- Saídas excessivas ou enganosas em cenários de verificação foram eliminadas.
- Referências: #4124, #4176, #3303, #4036.
Plugins e integração com systemd
- O plugin
rpm-plugin-syslog(8)foi ajustado para não exibir nomes de operação enganosos nem mensagens duplicadas. - O nome do programa nas mensagens foi alterado de
[RPM]pararpm, facilitando buscas comgrep. - Agora,
journalctl -t rpmmostra de forma prática o histórico de transações. - Referências: #4172, #1254.
Novas páginas de manual
- Foram incluídas diversas man pages novas ou revisadas, como:
elfdeps(1)rpm-dependency-generators(7)rpm-design(7)rpm-scriptlets(7)rpm-sysusers(7)
- A página
rpmbuild(1)ganhou seção dedicada ao processo de build, erpmkeys(8)passou a abordar a política de verificação completa. - Referência: #3612.
Atualizações de API
- Scriptlets Lua obedecem a
rpmtsSetScriptFd(), permitindo redirecionamento de stdout/stderr. - Ganchos de plugin
psm_preepsm_postsão executados apenas nas operações principais (install, erase, restore). - Nova função
rpmKeyringVerifySig3()que também retorna “lints”. - Bindings Python recebem
rpm.ds.Ti()para obter o índice atual de trigger. - Extensões de tags podem ser usadas em buscas de padrões no rpmdb.
- Funções como
rpmtxnImportPubkey()eFdopen()receberam validações adicionais. - Correções diversas nas bindings Python.
- Referências: #3328, #1254, #4069, #3943, #4077, #4096, #3058.
Compilação com Clang e macOS
- Todos os erros e avisos de compilação com Clang foram resolvidos, garantindo builds limpos.
- Regressão de compilação no macOS presente na 6.0.1 foi corrigida.
- Foram adicionados presets úteis ao CMake para simplificar a configuração.
- Referências: #4070, #4105, #4139, #4118.
Impacto para administradores e desenvolvedores
- Desempenho: o fechamento de descritores de arquivo em kernels ≥ 5.11 com glibc ≥ 2.34 pode reduzir o tempo de instalação em até 26 %.
- Segurança: suporte a tokens PKCS#11 amplia as opções de assinatura de pacotes, atendendo a políticas corporativas mais rígidas.
- Compatibilidade: a restauração das buscas NSS garante comportamento esperado em ambientes que utilizam LDAP, NIS ou outros serviços de identidade.
- Desenvolvimento: as novas macros e opções de
%definefacilitam a criação de spec files mais claros e reutilizáveis.
Como atualizar
Os usuários podem obter a versão estável via gerenciadores de pacotes da distribuição ou diretamente do site oficial:
# Exemplo para distribuições baseadas em Fedora
sudo dnf upgrade rpm
Para quem deseja testar a versão de desenvolvimento, consulte as notas da release RC1 disponíveis na página oficial.
Esta notícia foi baseada nas notas de lançamento oficiais do RPM 6.1.0.