pkg.sopackage field notes

brew / rank 63

Install m4 with Homebrew

Macro processing language. Version 1.4.21 via Homebrew; verified 2026-07-17.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install m4

provider-native install command

overview

Package summary

Macro processing language

Commands and aliases

  • m4

history

Project history and usage

GNU M4 is the GNU implementation of the traditional Unix `m4` macro processor. It expands built-in and user-defined macros while copying input to output and is used both directly and as infrastructure for other build tools.

Project history

The m4 lineage is older than GNU: the GNU manual traces macro-language ideas to 1950s and 1960s work by Alan Perlis, Doug McIlroy, Christopher Strachey, and Bell Labs macro processors such as GPM and M6.

Kernighan and Ritchie developed the original `m4` at Bell Labs in 1977. GNU M4 was released by Rene Seindal in 1990 to remove artificial limits in many traditional implementations, including line length, macro size, and macro-count limits.

Francois Pinard maintained GNU M4 in the early 1990s and released version 1.4 in 1994. After a long stable period, maintenance resumed with Paul Eggert, Gary V. Vaughan, Eric Blake, and later releases in the 1.4 series through 1.4.20.

Adoption history

The GNU manual notes that `m4` is widely available on Unix systems and standardized by POSIX. Many users install GNU M4 indirectly because GNU Autoconf requires it to generate configure scripts.

The supplied package-manager facts show the package across Homebrew, Debian, Ubuntu, Fedora, Arch, Alpine, Nix, MacPorts, Scoop, and openSUSE, which matches its role as a baseline development dependency.

How it is used

GNU M4 can be invoked as `m4 [option...] [file...]`. It supports macro expansion, file inclusion, shell-command execution, arithmetic, text manipulation, and recursion.

In package builds, direct human-written M4 macros are less common than Autoconf usage, but maintainers still care about GNU M4 compatibility because configure-generation failures often trace back to macro behavior.

Why package nerds care

GNU M4 is one of the quiet pieces of the Autotools stack: many source packages do not need it at runtime, but build-from-VCS workflows and autoreconf pipelines often need the GNU implementation.

It matters to package maintainers because POSIX `m4`, vendor `m4`, and GNU M4 have historically differed in limits and extensions, and Autoconf intentionally standardized on GNU M4 to avoid those limitations.

Timeline

  • 1977: Original Bell Labs m4 described by Kernighan and Ritchie
  • 1990: Rene Seindal released GNU M4
  • 1994: GNU M4 1.4 released as a long-lived stable version
  • 2004: 1.4.1 and 1.4.2 addressed long-standing bugs
  • 2025: GNU M4 1.4.20 released

Related projects

  • GNU Autoconf is one of GNU M4's biggest users and requires GNU M4 as its macro engine.
  • Traditional Unix m4 implementations, GPM, M6, M5, and Ratfor-related preprocessors are part of the historical macro-processor lineage.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew bottle metadata was recorded.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
m4executableindexed executableDiscovered from the local executable index.

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-08-03
manager version1.4.21
manager updated2026-07-17
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:m4
Version1.4.21
Package managerHomebrew
Homepagehttps://www.gnu.org/software/m4/
Last updated2026-07-17T16:54:41-04:00
Pulseupdated
Bottlenot recorded
Servicenone declared

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Combined YAML source

View the package source record on GitHub.

combined/m4.yml

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • curated package history
  • pkgdb category and tag curation