GNU Automake 1.19 corrige um bug de 14 anos no dist
O GNU Automake 1.19, sua primeira versão em 15 meses, corrige um bug de 14 anos que quebrava comandos simultâneos como make dist-bzip2 dist-xz.
3 min de leitura

Em números
- since Automake's previous release, 1.18.1
- 15 months
- age of the concurrent-compression bug now fixed
- 14 years
- archive formats the new AM_OPTIONAL_AUTOMAKE macro can build conditionally
- 8
O GNU Automake 1.19 já está disponível, a primeira versão nova dessa ferramenta de build tão usada em 15 meses. O arquivo NEWS do projeto GNU Automake e o relatório do Phoronix, ambos publicados em 10 de setembro de 2026, descrevem uma versão construída quase inteiramente em torno da correção de bugs existentes, em vez de adicionar novos recursos.
O Automake é uma ferramenta que gera Makefiles portáveis a partir de um modelo mais simples. É uma parte da cadeia "autotools" da GNU, ao lado do Autoconf e do Libtool. Continua comum em projetos C e C++ que não migraram para sistemas de build mais novos, como Meson ou CMake. Projetos mais antigos tendem a continuar usando-o, já que migrar significaria reescrever toda a configuração de build.
Um intervalo de 15 meses entre versões é longo para uma ferramenta da qual tantos projetos dependem. Durante a maior parte desse tempo, não houve mudança visível para os usuários. A versão 1.19 adiciona apenas um recurso realmente novo. O restante das mudanças corrige bugs que estavam parados no rastreador havia tempo, alguns por mais de uma década.
Um bug de 14 anos, corrigido
A correção principal desta versão resolve um problema que existia havia 14 anos. Executar dois alvos de compressão juntos, como make dist-bzip2 dist-xz, costumava falhar. O Automake 1.19 corrige isso fazendo com que alvos de compressão simultâneos compartilhem tarballs intermediários por meio do mecanismo .INTERMEDIATE do GNU make, segundo o arquivo NEWS do projeto.
Uma segunda mudança, relacionada a essa, adiciona uma nova macro, AM_OPTIONAL_AUTOMAKE. Ela permite que o sistema de build de um projeto gere um formato de arquivo, como dist-bzip2 ou dist-xz, somente se a ferramenta de compressão correspondente estiver realmente instalada. Formatos sem uma ferramenta disponível são ignorados em vez de fazer todo o build falhar. A documentação da versão descreve o objetivo como construir cada arquivo "se a ferramenta dada para criação/compressão do arquivo estiver disponível, e pular as demais sem gerar erro". A macro cobre oito formatos: dist-bzip2, dist-bzip3, dist-xz, dist-lzip, dist-zstd, dist-zip, dist-shar e dist-tarZ.
Outras correções na 1.19
| Mudança | O que corrige |
|---|---|
make dist e falhas do tar | make dist agora falha quando o tar falha, em vez de produzir silenciosamente um arquivo truncado |
| Tratamento de make recursivo | make dist não repassa mais substituições internas de limpeza para operações aninhadas, o que antes quebrava o distcheck |
| Detecção de arquivos de licença | COPYINGv2, COPYINGv3, COPYING.LESSERv2 e COPYING.LESSERv3 agora são reconhecidos para distribuição automática |
| Detecção do BusyBox tar | Não é mais identificado erroneamente como GNU tar apenas com base na saída do --version |
| Verificação de tamanho de nome de arquivo | Agora rejeita apenas nomes de arquivo que excedem o limite configurado, não os que o atingem exatamente |
| Marcação Objective-C/C++ | Fontes agora recebem automaticamente --tag=OBJC / --tag=OBJCXX com Libtool 2.6.0 ou mais recente |
O que isso significa para desenvolvedores
Se o build do seu projeto já falhou ao executar dois alvos make dist-* no mesmo comando, essa falha já está corrigida. Ainda assim, você precisa primeiro atualizar para o Automake 1.19 e regenerar seus arquivos de build com autoreconf.
Se você mantém um script de lançamento que presume que certas ferramentas de compressão estão sempre presentes, vale a pena adotar a nova macro AM_OPTIONAL_AUTOMAKE. Ela elimina a necessidade de escrever manualmente verificações de disponibilidade para ferramentas como bzip2, xz e zstd.
Verifique também o nome do arquivo de licença do seu projeto antes de atualizar. Se ele usa uma variante como COPYING.LESSERv3 que não era reconhecida antes, o Automake 1.19 agora vai identificá-la e incluí-la automaticamente nos arquivos distribuídos. Isso só importa se você contava com ela sendo excluída.
Fontes
- GNU Automake 1.19 Released With More Than One Year Worth Of Fixes - Phoronix
- Automake NEWS - v1.19 - GNU Savannah
Artigos relacionados

LLVM debate compilar o ClangIR por omissão
Uma RFC do LLVM propõe compilar o ClangIR dentro do Clang por omissão. Ninguém o usaria sem uma opção, mas há estimativas que duplicam os tempos de compilação.

Debian Code Search elimina a última dependência de cgo
Michael Stapelberg substituiu uma biblioteca em C com 7 anos por Go puro usando o pacote SIMD experimental, e igualou a velocidade da versão em C.

Um binário strip adulterado pode abrir uma porta em todo o NixOS
Investigadores construíram o ataque trusting-trust de Ken Thompson a partir do GNU strip, e não de um compilador, e abriram portas em quase todos os binários de um instalador NixOS.