Skip to content
Tech AI Wire

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.

Por Tech AI Wire Team

3 min de leitura

XLinkedIn
A widescreen monitor on a desk showing an editor full of code, too small to read, beside a desk lamp and a keyboard.

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çaO que corrige
make dist e falhas do tarmake dist agora falha quando o tar falha, em vez de produzir silenciosamente um arquivo truncado
Tratamento de make recursivomake 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çaCOPYINGv2, COPYINGv3, COPYING.LESSERv2 e COPYING.LESSERv3 agora são reconhecidos para distribuição automática
Detecção do BusyBox tarNão é mais identificado erroneamente como GNU tar apenas com base na saída do --version
Verificação de tamanho de nome de arquivoAgora 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

  1. GNU Automake 1.19 Released With More Than One Year Worth Of Fixes - Phoronix
  2. Automake NEWS - v1.19 - GNU Savannah

Artigos relacionados

A terminal showing a large C++ project compiling, with the CMake percentage counter partway through and object files scrolling past.
Coding

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.