macOS
brew install gpplocal Homebrew formula metadata
sudo port install gppMacPorts ports tree · lang/gpp/Portfile · source: api.github.com
brew
General-purpose preprocessor with customizable syntax. Version 2.28 via Homebrew; verified from local package data.
install
brew install gpplocal Homebrew formula metadata
sudo port install gppMacPorts ports tree · lang/gpp/Portfile · source: api.github.com
sudo apt install gppDebian stable package indexes · gpp · source: deb.debian.org
sudo dnf install general-purpose-preprocessorFedora Rawhide package metadata · general-purpose-preprocessor · source: dl.fedoraproject.org
nix profile install nixpkgs#gppnixpkgs package indexes · pkgs/by-name/gp/gpp/package.nix · source: api.github.com
sudo zypper install gppopenSUSE Tumbleweed package metadata · gpp · source: download.opensuse.org
overview
General-purpose preprocessor with customizable syntax
history
GPP is a general-purpose preprocessor with customizable syntax. The project README and citation metadata emphasize that it is independent of any one programming language, lighter than GNU m4 for many tasks, and includes built-in macro support for C/C++, LaTeX, HTML, XHTML, and Prolog files.
The GitHub repository is the official development location and the project homepage links users to online documentation, portable source packages, and binary-package references. The repository includes source, documentation, Autotools files, license files, and citation metadata.
GPP has academic documentation as well as package metadata: its CITATION.cff points to a 2020 Journal of Open Source Software article by Tristan Miller and Denis Auroux describing it as an extensible, customizable preprocessor for software development, document processing, and research workflows.
The input package-manager facts list Homebrew, Debian, Fedora, MacPorts, Nix, Ubuntu, and openSUSE packages. That spread fits a small C command-line tool that is useful in build pipelines and documentation generation without needing a runtime service.
Homebrew packages it as gpp, Fedora uses the more descriptive general-purpose-preprocessor name, and the official README points users to binary-package links on the project homepage.
Users invoke gpp to preprocess text with syntax tuned to the target language or document format. The README notes that the documentation itself is generated by GPP from a gpp.pp input file, making the docs both reference material and a working example.
The package is most useful when cpp is too language-specific and m4 is heavier than needed: templating LaTeX or HTML, defining domain-specific macro syntax, or generating source fragments in build systems.
GPP is a compact example of a Unix filter that earns packaging despite a small footprint: it has a single executable, man/HTML documentation, portable source releases, and a stable niche that overlaps build systems, documentation, and research tooling.
Its significance is less about popularity and more about substitutability: package users can reach for it when they need a configurable macro processor without bringing in a full template engine or language-specific preprocessor.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
gpp | cli | global executable |
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.
install metadata
| Package key | brew:gpp |
|---|---|
| Version | 2.28 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/gpp |
| Homepage | https://logological.org/gpp |
| Repository | https://github.com/logological/gpp |
| Upstream docs | https://logological.org/gpp |
| License | LGPL-3.0-only |
| Source archive | https://files.nothingisreal.com/software/gpp/gpp-2.28.tar.bz2 |
| Bottle | available (on arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, monterey, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | gpp |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
gpp 2.28-2
general-purpose preprocessor with customizable syntax
sudo apt install gppgpp
nix profile install nixpkgs#gppgpp 2.28-1
general-purpose preprocessor with customizable syntax
sudo apt install gppgeneral-purpose-preprocessor 2.28-7.fc44
Customizable language-agnostic preprocessor
sudo dnf install general-purpose-preprocessorgpp 2.28-1.7
Generic Preprocessor
sudo zypper install gppgpp
sudo port install gppsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.