Skip to content
Tech AI Wire

GNU Automake 1.19 corrige un bug vieux de 14 ans dans dist

GNU Automake 1.19, sa première version en 15 mois, corrige un bug vieux de 14 ans qui cassait des commandes simultanées comme make dist-bzip2 dist-xz.

Par Tech AI Wire Team

3 min de lecture

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

En chiffres

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

GNU Automake 1.19 est sorti, la première nouvelle version de cet outil de build largement utilisé depuis 15 mois. Le fichier NEWS du projet GNU Automake et le rapport de Phoronix, tous deux publiés le 10 septembre 2026, décrivent une version construite presque entièrement autour de la correction de bugs existants plutôt que de l'ajout de nouvelles fonctionnalités.

Automake est un outil qui génère des Makefiles portables à partir d'un modèle plus simple. Il fait partie de la chaîne GNU « autotools », aux côtés d'Autoconf et de Libtool. Il reste courant dans les projets C et C++ qui ne sont pas passés à des systèmes de build plus récents comme Meson ou CMake. Les projets plus anciens ont tendance à s'y tenir, car changer signifierait réécrire entièrement la configuration de build.

Un écart de 15 mois entre les versions est long pour un outil dont dépendent autant de projets. Pendant la majeure partie de cette période, aucun changement visible n'est apparu pour les utilisateurs. La version 1.19 n'ajoute qu'une seule vraie fonctionnalité. Le reste de ses changements corrige des bugs qui traînaient dans le suivi des tickets, certains depuis plus de dix ans.

Un bug vieux de 14 ans, corrigé

La correction phare de cette version s'attaque à un problème qui existait depuis 14 ans. Exécuter ensemble deux cibles de compression, comme make dist-bzip2 dist-xz, échouait auparavant. Automake 1.19 corrige cela en faisant partager aux cibles de compression simultanées des tarballs intermédiaires via le mécanisme .INTERMEDIATE de GNU make, selon le fichier NEWS du projet.

Un second changement, lié au premier, ajoute une nouvelle macro, AM_OPTIONAL_AUTOMAKE. Elle permet au système de build d'un projet de générer un format d'archive, comme dist-bzip2 ou dist-xz, uniquement si l'outil de compression correspondant est réellement installé. Les formats sans outil disponible sont ignorés au lieu de faire échouer tout le build. La documentation de la version décrit l'objectif comme celui de construire chaque archive « si l'outil donné pour la création/compression d'archive est disponible, et de sauter les autres sans erreur ». La macro couvre huit formats : dist-bzip2, dist-bzip3, dist-xz, dist-lzip, dist-zstd, dist-zip, dist-shar et dist-tarZ.

Autres corrections dans la 1.19

ChangementCe qu'il corrige
make dist et les échecs de tarmake dist échoue désormais quand tar échoue, au lieu de produire silencieusement une archive tronquée
Gestion du make récursifmake dist ne transmet plus les surcharges internes de nettoyage aux opérations imbriquées, ce qui cassait auparavant distcheck
Détection des fichiers de licenceCOPYINGv2, COPYINGv3, COPYING.LESSERv2 et COPYING.LESSERv3 sont désormais reconnus pour la distribution automatique
Détection de BusyBox tarN'est plus identifié à tort comme GNU tar sur la seule base de la sortie de --version
Vérification de la longueur des noms de fichiersNe rejette désormais que les noms de fichiers dépassant la limite configurée, pas ceux qui l'atteignent exactement
Étiquetage Objective-C/C++Les sources reçoivent désormais automatiquement --tag=OBJC / --tag=OBJCXX avec Libtool 2.6.0 ou plus récent

Ce que cela signifie pour les développeurs

Si le build de votre projet a déjà échoué lorsque vous avez lancé deux cibles make dist-* dans la même commande, cet échec est désormais corrigé. Il vous faut d'abord passer à Automake 1.19 et régénérer vos fichiers de build avec autoreconf.

Si vous maintenez un script de version qui suppose que certains outils de compression sont toujours présents, la nouvelle macro AM_OPTIONAL_AUTOMAKE mérite d'être adoptée. Elle supprime le besoin d'écrire à la main des vérifications de disponibilité pour des outils comme bzip2, xz et zstd.

Vérifiez aussi le nom du fichier de licence de votre projet avant de mettre à jour. S'il utilise une variante comme COPYING.LESSERv3 qui n'était pas reconnue auparavant, Automake 1.19 la détectera désormais et l'inclura automatiquement dans les archives distribuées. Cela n'a d'importance que si vous comptiez sur son exclusion.

Sources

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

Articles liés

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

LLVM débat de compiler ClangIR par défaut

Une RFC LLVM propose de compiler ClangIR dans Clang par défaut. Personne ne l'utiliserait sans drapeau, mais des estimations doublent les temps de compilation.