Automic VaultAutomic Vault

brew

Install tradcpp with Homebrew, MacPorts, Nix

K&R-style C preprocessor. Version 0.5.3 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install tradcpp

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install tradcpp

MacPorts ports tree · devel/tradcpp/Portfile · source: api.github.com

Linux

Nixverified · 92%
nix profile install nixpkgs#tradcpp

nixpkgs package indexes · pkgs/by-name/tr/tradcpp/package.nix · source: api.github.com

overview

Package summary

K&R-style C preprocessor

Commands and aliases

  • tradcpp

history

Project history and usage

tradcpp is a small traditional, K&R-style C preprocessor maintained from David Holland's NetBSD pages. Its history is tied less to compiling C and more to preserving old build techniques that used cpp as a general text preprocessor.

Project history

The official tradcpp page says the tool was written for historical uses of the C preprocessor on non-C input, because modern compiler-bundled preprocessors increasingly do not provide a traditional mode or preserve the behavior old build systems expect. The project deliberately keeps a narrow scope and does not try to become a full modern C89/C99/C11 preprocessor.

A distinctive implementation goal is whitespace preservation. The author calls out makefiles, old Emacs build logic, and imake as examples where rearranging whitespace can break legacy systems. tradcpp also includes a trace mode for diagnosing complex preprocessor use; the page says it was written to investigate an imake problem on Solaris.

Adoption history

The most explicit adoption history is in pkgsrc: the official page says pkgsrc, the NetBSD package system, has used tradcpp for these purposes since 2013. That makes tradcpp a package-system support tool rather than a broad end-user application.

How it is used

In package-manager culture, tradcpp is used when a build recipe needs a traditional cpp that preserves old preprocessing behavior for files such as makefiles. Users are explicitly steered away from using it for normal modern C code.

Why package nerds care

tradcpp matters to package nerds because it is infrastructure for keeping old source packages buildable. It represents the unglamorous compatibility layer a portability framework like pkgsrc sometimes needs when upstream build systems rely on historical Unix behavior.

Timeline

  • 2013: pkgsrc begins using tradcpp for legacy preprocessing use cases.
  • Current official release: tradcpp 0.5.3 is listed on the NetBSD-hosted project page.

Related projects

  • pkgsrc uses tradcpp for package builds with legacy preprocessing needs.
  • imake and old Emacs build systems are named by the author as examples of the historical cpp usage tradcpp was designed to support.

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 post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 12 platform targets.
  • Build metadata lists 1 build dependencies.

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
tradcppcliglobal executable

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-07-08
manager version0.5.3
manager updated
local dataok
upstreamnot checked
latest detectednot detected

https://www.netbsd.org/~dholland/tradcpp/

install metadata

Package metadata

Package keybrew:tradcpp
Version0.5.3
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/tradcpp
Homepagehttps://www.netbsd.org/~dholland/tradcpp/
Repositoryhttps://www.netbsd.org/~dholland/hg/tradcpp
Upstream docshttps://www.netbsd.org/~dholland/tradcpp
LicenseBSD-2-Clause
Source archivehttps://cdn.netbsd.org/pub/NetBSD/misc/dholland/tradcpp-0.5.3.tar.gz
Build dependenciesbmake
Bottleavailable (on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, monterey, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nametradcpp
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

tradcpp

nix profile install nixpkgs#tradcpp
  • normalized package name match
  • Matched by: Tradcpp
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/tr/tradcpp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
MacPorts95%

tradcpp

sudo port install tradcpp
  • normalized package name match
  • Matched by: Tradcpp
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/tradcpp/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

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.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment