Skip to content
Tech AI Wire

GNU Automake 1.19 behebt einen 14 Jahre alten dist-Fehler

GNU Automake 1.19, die erste Version seit 15 Monaten, behebt einen 14 Jahre alten Fehler, der gleichzeitige Befehle wie make dist-bzip2 dist-xz verhinderte.

Von Tech AI Wire Team

3 Min. Lesezeit

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

Die Zahlen

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 ist da, die erste neue Version des weitverbreiteten Build-System-Werkzeugs seit 15 Monaten. Die NEWS-Datei des GNU-Automake-Projekts und der Bericht von Phoronix, beide am 10. September 2026 veröffentlicht, beschreiben eine Version, die fast ausschließlich bestehende Fehler behebt, statt neue Funktionen hinzuzufügen.

Automake ist ein Werkzeug, das aus einer einfacheren Vorlage portable Makefiles erzeugt. Es ist Teil der GNU-„Autotools"-Kette, neben Autoconf und Libtool. Es bleibt in C- und C++-Projekten verbreitet, die nicht auf neuere Build-Systeme wie Meson oder CMake umgestiegen sind. Ältere Projekte bleiben eher dabei, da ein Wechsel bedeuten würde, das gesamte Build-Setup neu zu schreiben.

Ein Abstand von 15 Monaten zwischen Versionen ist lang für ein Werkzeug, von dem so viele abhängen. Den größten Teil dieser Zeit gab es für Nutzer keine sichtbare Änderung. Version 1.19 bringt nur eine echte neue Funktion. Der Rest der Änderungen behebt Fehler, die zum Teil seit über zehn Jahren im Tracker lagen.

Ein 14 Jahre alter Fehler, behoben

Die wichtigste Korrektur der Version behebt ein Problem, das seit 14 Jahren besteht. Zwei Kompressionsziele gemeinsam auszuführen, etwa make dist-bzip2 dist-xz, schlug bisher fehl. Automake 1.19 behebt dies, indem gleichzeitige Kompressionsziele über den .INTERMEDIATE-Mechanismus von GNU make gemeinsame Zwischen-Tarballs nutzen, so die NEWS-Datei des Projekts.

Eine zweite, damit verwandte Änderung fügt ein neues Makro hinzu, AM_OPTIONAL_AUTOMAKE. Es lässt das Build-System eines Projekts ein Archivformat, etwa dist-bzip2 oder dist-xz, nur dann erzeugen, wenn das passende Kompressionswerkzeug tatsächlich installiert ist. Formate ohne verfügbares Werkzeug werden übersprungen, statt den gesamten Build fehlschlagen zu lassen. Die Release-Dokumentation beschreibt das Ziel so: jedes Archiv zu bauen, „wenn das jeweilige Werkzeug zur Archiverstellung/Kompression verfügbar ist, und die anderen ohne Fehlermeldung zu überspringen". Das Makro deckt acht Formate ab: dist-bzip2, dist-bzip3, dist-xz, dist-lzip, dist-zstd, dist-zip, dist-shar und dist-tarZ.

Weitere Korrekturen in 1.19

ÄnderungWas sie behebt
make dist und tar-Fehlermake dist schlägt jetzt fehl, wenn tar fehlschlägt, statt still ein verstümmeltes Archiv zu erzeugen
Umgang mit rekursivem makemake dist gibt interne Cleanup-Overrides nicht mehr an verschachtelte Operationen weiter, was zuvor distcheck brechen konnte
Erkennung von LizenzdateienCOPYINGv2, COPYINGv3, COPYING.LESSERv2 und COPYING.LESSERv3 werden jetzt für die automatische Verteilung erkannt
Erkennung von BusyBox tarWird nicht mehr allein anhand der --version-Ausgabe fälschlich als GNU tar erkannt
Prüfung der DateinamenlängeLehnt jetzt nur Dateinamen ab, die das konfigurierte Limit überschreiten, nicht solche, die es genau erreichen
Objective-C/C++-KennzeichnungQuellen erhalten mit Libtool 2.6.0 oder neuer automatisch --tag=OBJC / --tag=OBJCXX

Was das für Entwickler bedeutet

Wenn der Build Ihres Projekts jemals fehlschlug, weil Sie zwei make dist-*-Ziele im selben Befehl ausgeführt haben, ist dieser Fehler jetzt behoben. Sie müssen dafür zunächst auf Automake 1.19 aktualisieren und Ihre Build-Dateien mit autoreconf neu erzeugen.

Wenn Sie ein Release-Skript pflegen, das davon ausgeht, dass bestimmte Kompressionswerkzeuge immer vorhanden sind, lohnt sich das neue Makro AM_OPTIONAL_AUTOMAKE. Es macht handgeschriebene Verfügbarkeitsprüfungen für Werkzeuge wie bzip2, xz und zstd überflüssig.

Prüfen Sie vor dem Update auch den Namen der Lizenzdatei Ihres Projekts. Verwendet es eine Variante wie COPYING.LESSERv3, die zuvor nicht erkannt wurde, nimmt Automake 1.19 sie jetzt automatisch auf und schließt sie in verteilte Archive ein. Das ist nur relevant, wenn Sie sich bisher darauf verlassen haben, dass sie ausgeschlossen bleibt.

Quellen

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

Ähnliche Artikel