GNU Automake 1.19 fixes a 14-year-old dist bug
GNU Automake 1.19, its first release in 15 months, fixes a 14-year-old bug that broke concurrent commands like make dist-bzip2 dist-xz.
3 min read

By the numbers
- 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 is out, the first new release of the widely used build-system tool in 15 months. The GNU Automake project's NEWS file and Phoronix's report, both published September 10, 2026, describe a release built almost entirely around fixing existing bugs rather than adding new features.
Automake is a tool that generates portable Makefiles from a simpler template. It is one part of the GNU "autotools" chain, alongside Autoconf and Libtool. It remains common in C and C++ projects that have not switched to newer build systems like Meson or CMake. Older projects tend to stick with it, since switching would mean rewriting the entire build setup.
A 15-month gap between releases is long for a tool this widely depended on. Most of that time produced no visible change for users. Version 1.19 adds only one real feature. The rest of its changes fix bugs that had been sitting in the tracker, some for over a decade.
A 14-year-old bug, fixed
The release's headline fix addresses a problem that has existed for 14 years. Running two compression targets together, such as make dist-bzip2 dist-xz, used to fail. Automake 1.19 fixes this by having concurrent compression targets share intermediate tarballs through GNU make's .INTERMEDIATE mechanism, according to the project's NEWS file.
A second, related change adds a new macro, AM_OPTIONAL_AUTOMAKE. It lets a project's build system generate an archive format, such as dist-bzip2 or dist-xz, only if the matching compression tool is actually installed. Formats without an available tool are skipped instead of failing the whole build. The release documentation describes the goal as building each archive "if the given tool for archive creation/compression is available and skip the ones otherwise without erroring out." The macro covers eight formats: dist-bzip2, dist-bzip3, dist-xz, dist-lzip, dist-zstd, dist-zip, dist-shar and dist-tarZ.
Other fixes in 1.19
| Change | What it fixes |
|---|---|
make dist and tar failures | make dist now fails when tar fails, instead of silently producing a truncated archive |
| Recursive make handling | make dist no longer passes internal cleanup overrides down to nested operations, which used to break distcheck |
| License file detection | COPYINGv2, COPYINGv3, COPYING.LESSERv2 and COPYING.LESSERv3 are now recognized for automatic distribution |
| BusyBox tar detection | No longer misidentified as GNU tar based on --version output alone |
| Filename length checks | Now reject only filenames that exceed the configured limit, not ones that exactly match it |
| Objective-C/C++ tagging | Sources now get --tag=OBJC / --tag=OBJCXX automatically with Libtool 2.6.0 or newer |
What this means for developers
If your project's build has ever failed when you ran two make dist-* targets in the same command, that failure is fixed now. You still need to upgrade to Automake 1.19 and regenerate your build files with autoreconf first.
If you maintain a release script that assumes certain compression tools are always present, the new AM_OPTIONAL_AUTOMAKE macro is worth adopting. It removes the need to hand-write availability checks for tools like bzip2, xz and zstd.
Check your project's license file name before you upgrade, too. If it uses a variant such as COPYING.LESSERv3 that was not recognized before, Automake 1.19 will now pick it up and include it in distributed archives automatically. That only matters if you were relying on it being excluded.
Sources
- GNU Automake 1.19 Released With More Than One Year Worth Of Fixes - Phoronix
- Automake NEWS - v1.19 - GNU Savannah
Related articles

LLVM debates building ClangIR by default
An LLVM RFC proposes compiling ClangIR into Clang by default. Nobody would use it without a flag, but some estimates put build times at more than double.

Debian Code Search drops its last cgo dependency
Michael Stapelberg replaced a 7-year-old C library with pure Go using the experimental SIMD package, and matched the C version's speed.

A tampered strip binary can backdoor all of NixOS
Researchers built Ken Thompson's trusting-trust attack out of GNU strip, not a compiler, and used it to backdoor almost every binary in a NixOS installer.
The daily brief
Three to five stories a day, and what each one means for the people who build software. Free, no spam.