FERRAMENTAS LINUX: GNU Automake 1.19 Chega com Correções de 14 Anos e Novo Macro: O Guia Completo para Desenvolvedores

quinta-feira, 10 de setembro de 2026

GNU Automake 1.19 Chega com Correções de 14 Anos e Novo Macro: O Guia Completo para Desenvolvedores

 


GNU Automake 1.19 chega com AM_OPTIONAL_AUTOMAKE e corrige bug de 14 anos no make dist. Guia completo com checklist, FAQ e dicas de atualização para desenvolvedores.


Por que o Automake 1.19 é um Marco para o Build System


Se você ainda utiliza o GNU Automake como sistema de build em seus projetos — seja por tradição, compatibilidade ou preferência —, esta notícia é para você. Após 15 meses desde o lançamento da versão 1.18.1, a Free Software Foundation finalmente liberou o GNU Automake 1.19, uma atualização que, embora traga apenas uma nova funcionalidade, corrige bugs que assombravam desenvolvedores há mais de uma década.

Enquanto alternativas como Meson e CMake ganham espaço, o Automake continua sendo a espinha dorsal de inúmeros projetos GNU e de código aberto. Esta versão 1.19 é, acima de tudo, um marco de maturidade e estabilidade.

Neste artigo, vamos explorar em detalhes o que muda, como isso afeta seu fluxo de trabalho e como você pode aproveitar as melhorias imediatamente.


O Que Há de Novo no GNU Automake 1.19?


AM_OPTIONAL_AUTOMAKE: O Único Novo Recurso


A grande — e única — novidade em termos de funcionalidade é o macro AM_OPTIONAL_AUTOMAKE. Trata-se de um macro Autoconf que permite especificar uma lista de formatos de compressão para os arquivos de distribuição, como dist-xz, dist-zstd, dist-bzip3 e outros.

Como funciona na prática? O macro instrui o Automake a tentar construir cada tipo de arquivo de distribuição somente se a ferramenta de compressão correspondente estiver disponível no sistema. Se o xz não estiver instalado, por exemplo, o Automake simplesmente ignora a geração do arquivo .tar.xz sem gerar erro.

Isso resolve um problema antigo: antes, a ausência de um compressor resultava em falha no processo de make dist. Agora, o comportamento é resiliente e adaptativo.

Exemplo de uso no configure.ac:

m4
AM_OPTIONAL_AUTOMAKE([dist-xz dist-zstd dist-bzip3])

Essa linha, quando processada pelo Autoconf, gera a lógica necessária para que o make dist produza apenas os formatos viáveis.


Correções de Bugs: O Fim de uma Saga de 14 Anos

O aspecto mais significativo do Automake 1.19 não está em novos recursos, mas na resolução de problemas históricos. O bug mais notório corrigido nesta versão data de 2011 — há impressionantes 14 anos.


O Bug do make dist-bzip2 dist-xz


Anteriormente, ao executar make dist-bzip2 dist-xz simultaneamente, o Automake removia o tarball não comprimido após completar o primeiro alvo, impossibilitando a criação do segundo arquivo. 

A versão 1.19 corrige isso, permitindo que ambos os formatos sejam gerados corretamente a partir de uma única execução.


Produto Recomendado



⚡ Vista o Futuro. Domine o Now.

Sua armadura urbana chegou. Apresentamos a Camiseta Básica Masculina GuGi com estampa de Robô Cyberpunk. Mais que uma camiseta, é uma declaração de estilo para quem vive conectado ao amanhã.

🧵 100% Algodão Premium: Toque macio e conforto que duram o dia inteiro.

🤖 Estampa Robô Cyberpunk: Design futurista com óculos que dá personalidade a qualquer look.

💪 Durabilidade: Estrutura reforçada e resistente a lavagens.




Eu ganho uma comissão quando você faz uma compra.


Reconhecimento de Arquivos de Licença Alternativos


O Automake 1.19 agora reconhece arquivos como COPYINGv2, COPYINGv3, COPYING.LESSERv2 e COPYING.LESSERv3 como arquivos de licença válidos, distribuindo-os automaticamente nos arquivos de distribuição, assim como faz com o tradicional COPYING.

Essa mudança é especialmente relevante para compatibilidade com projetos GNU que utilizam versões específicas de licenças, como o GNU GMP.


Melhor Detecção do BusyBox Tar

O Automake 1.19 agora detecta corretamente o tar do BusyBox, que não é um GNU Tar completo. Anteriormente, o Automake assumia que qualquer implementação que suportasse --version era GNU Tar, o que causava problemas silenciosos.

make dist Falha Corretamente quando o Tar Falha

Antes, se o tar falhasse durante a criação do arquivo de distribuição, o make dist ainda retornava sucesso, deixando um arquivo truncado. Agora, o comando falha explicitamente, evitando distribuições corrompidas.


Outras Correções Relevantes


  • filename-length-max=N: não rejeita mais nomes de arquivo com exatamente N caracteres.
  • Arquivos gerados por regras: arquivos que não existem no momento, mas que podem ser gerados por uma regra do Makefile.am, agora são incluídos na distribuição.
  • Objective-C e Objective-C++: com Libtool, agora são compilados e linkados com --tag=OBJC e --tag=OBJCXX.
  • Limpeza do diretório de distribuição: o make dist não propaga mais a sobrescrita interna de limpeza para makes recursivos.
  • Códigos de saída de compressores: erros de compressores não abortam mais o processo deixando arquivos vazios para trás.


Onde Baixar e Como Instalar


O GNU Automake 1.19 já está disponível para download no repositório oficial do Savannah GNU.

Instalação a partir do código-fonte:

bash
wget https://ftp.gnu.org/gnu/automake/automake-1.19.tar.xz
tar -xf automake-1.19.tar.xz
cd automake-1.19
./configure --prefix=/usr/local
make
sudo make install

Verificação da versão instalada:

bash
automake --version
# Deve exibir: automake (GNU automake) 1.19


Perguntas Frequentes (FAQ)


1. O Automake 1.19 é compatível com projetos que usam versões anteriores?

Sim. O Automake mantém compatibilidade retroativa com projetos escritos para versões anteriores. No entanto, recomenda-se testar seu configure.ac e Makefile.am com a nova versão, especialmente se você utiliza macros customizados ou comportamentos que dependiam de bugs corrigidos.


2. Preciso atualizar meu projeto imediatamente?

Não há urgência crítica, mas a atualização é altamente recomendada por causa das correções de segurança e robustez. Se você utiliza make dist com múltiplos formatos de compressão ou depende de compatibilidade com BusyBox, a atualização é praticamente obrigatória.


3. O que acontece se eu não tiver o zstd ou bzip3 instalado?

Com o novo macro AM_OPTIONAL_AUTOMAKE, o Automake simplesmente pula a geração do formato correspondente sem gerar erro. Você pode continuar usando make dist normalmente — apenas os formatos disponíveis serão gerados.


Checklist Rápido para Atualização

Copie e cole este checklist para garantir uma migração tranquila


## Checklist de Atualização — GNU Automake 1.19


- [ ] Verificar versão atual: `automake --version`.

- [ ] Baixar o tarball 1.19 do Savannah GNU.

- [ ] Compilar e instalar: `./configure && make && sudo make install`.

- [ ] Testar `autoreconf -fi` no seu projeto.

- [ ] Executar `make dist` e verificar os arquivos gerados.

- [ ] Testar `make dist-bzip2 dist-xz` (se aplicável).

- [ ] Adicionar `AM_OPTIONAL_AUTOMAKE` ao `configure.ac` (opcional).

- [ ] Verificar se `COPYINGv2`/`COPYINGv3` são distribuídos corretamente.

- [ ] Executar a suíte de testes do projeto.

- [ ] Atualizar CI/CD para usar a nova versão.


Conclusão 


O GNU Automake 1.19 não é uma revolução, mas é uma consolidação. Em um ecossistema onde ferramentas como Meson e CMake avançam rapidamente, o Automake prova que ainda tem relevância ao corrigir bugs históricos e melhorar a robustez do processo de distribuição de software.

Se você mantém projetos que dependem do Autotools, atualize agora. As correções de segurança e a resiliência do make dist sozinhas já justificam a migração.



Nenhum comentário:

Postar um comentário