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.
3 min de lecture

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
| Changement | Ce qu'il corrige |
|---|---|
make dist et les échecs de tar | make dist échoue désormais quand tar échoue, au lieu de produire silencieusement une archive tronquée |
| Gestion du make récursif | make dist ne transmet plus les surcharges internes de nettoyage aux opérations imbriquées, ce qui cassait auparavant distcheck |
| Détection des fichiers de licence | COPYINGv2, COPYINGv3, COPYING.LESSERv2 et COPYING.LESSERv3 sont désormais reconnus pour la distribution automatique |
| Détection de BusyBox tar | N'est plus identifié à tort comme GNU tar sur la seule base de la sortie de --version |
| Vérification de la longueur des noms de fichiers | Ne 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
- GNU Automake 1.19 Released With More Than One Year Worth Of Fixes - Phoronix
- Automake NEWS - v1.19 - GNU Savannah
Articles liés

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.

Debian Code Search supprime sa dernière dépendance cgo
Michael Stapelberg a remplacé une bibliothèque C vieille de 7 ans par du Go pur utilisant le paquet SIMD expérimental, et a égalé la vitesse de la version C.

Un binaire strip trafiqué peut piéger tout NixOS
Des chercheurs ont construit l'attaque trusting-trust de Ken Thompson à partir de GNU strip, et non d'un compilateur, pour piéger presque tous les binaires d'un installateur NixOS.