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.
3 Min. Lesezeit

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
| Änderung | Was sie behebt |
|---|---|
make dist und tar-Fehler | make dist schlägt jetzt fehl, wenn tar fehlschlägt, statt still ein verstümmeltes Archiv zu erzeugen |
| Umgang mit rekursivem make | make dist gibt interne Cleanup-Overrides nicht mehr an verschachtelte Operationen weiter, was zuvor distcheck brechen konnte |
| Erkennung von Lizenzdateien | COPYINGv2, COPYINGv3, COPYING.LESSERv2 und COPYING.LESSERv3 werden jetzt für die automatische Verteilung erkannt |
| Erkennung von BusyBox tar | Wird nicht mehr allein anhand der --version-Ausgabe fälschlich als GNU tar erkannt |
| Prüfung der Dateinamenlänge | Lehnt jetzt nur Dateinamen ab, die das konfigurierte Limit überschreiten, nicht solche, die es genau erreichen |
| Objective-C/C++-Kennzeichnung | Quellen 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
- GNU Automake 1.19 Released With More Than One Year Worth Of Fixes - Phoronix
- Automake NEWS - v1.19 - GNU Savannah
Ähnliche Artikel

LLVM debattiert, ClangIR standardmäßig zu bauen
Ein LLVM-RFC schlägt vor, ClangIR standardmäßig in Clang zu kompilieren. Genutzt würde es nur mit Flag, doch Schätzungen sehen mehr als doppelte Bauzeiten.

Debian Code Search wirft die letzte cgo-Abhängigkeit raus
Michael Stapelberg ersetzte eine 7 Jahre alte C-Bibliothek durch reines Go mit dem experimentellen SIMD-Paket und erreichte das Tempo der C-Version.

Ein manipuliertes strip kann ganz NixOS mit einer Hintertür versehen
Forscher haben Ken Thompsons Trusting-Trust-Angriff aus GNU strip gebaut, nicht aus einem Compiler, und damit fast jede Binärdatei eines NixOS-Installers unterwandert.