Automic VaultAutomic Vault

brew

Install gpp with Homebrew, apt, dnf, MacPorts, Nix, zypper

General-purpose preprocessor with customizable syntax. Version 2.28 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install gpp

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install gpp

MacPorts ports tree · lang/gpp/Portfile · source: api.github.com

Linux

Debian aptverified · 92%
sudo apt install gpp

Debian stable package indexes · gpp · source: deb.debian.org

Fedora dnfverified · 92%
sudo dnf install general-purpose-preprocessor

Fedora Rawhide package metadata · general-purpose-preprocessor · source: dl.fedoraproject.org

Nixverified · 92%
nix profile install nixpkgs#gpp

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

openSUSE zypperverified · 92%
sudo zypper install gpp

openSUSE Tumbleweed package metadata · gpp · source: download.opensuse.org

overview

Package summary

General-purpose preprocessor with customizable syntax

Commands and aliases

  • gpp

history

Project history and usage

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.

Project history

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.

Adoption history

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.

How it is used

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.

Why package nerds care

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.

Timeline

  • 2020: The project citation metadata records a Journal of Open Source Software article for GPP.
  • 2023: GitHub release metadata records GPP 2.28 dated Sep 26, 2023.
  • 2026: Homebrew metadata packages GPP as version 2.28 with bottles for macOS and Linux.

Related projects

  • cpp is the language-specific baseline that GPP explicitly contrasts with.
  • GNU m4 is the heavier general macro processor that GPP positions itself beside.
  • Autotools-style source packages are related operationally because the development checkout requires generating the build system before end-user installation steps apply.

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 10 platform targets.

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
gppcliglobal 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 version2.28
manager updated
local dataok
upstreamnot checked
latest detectednot detected

https://logological.org/gpp

  • infoNo package-manager update timestamp was available.low confidence
  • infoRelease/tag comparison is only available for GitHub repositories.https://logological.org/gppnone confidence

install metadata

Package metadata

Package keybrew:gpp
Version2.28
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/gpp
Homepagehttps://logological.org/gpp
Repositoryhttps://github.com/logological/gpp
Upstream docshttps://logological.org/gpp
LicenseLGPL-3.0-only
Source archivehttps://files.nothingisreal.com/software/gpp/gpp-2.28.tar.bz2
Bottleavailable (on arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, monterey, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namegpp
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • 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.

Debian apt95%

gpp 2.28-2

general-purpose preprocessor with customizable syntax

https://logological.org/gpp

sudo apt install gpp
  • Section: devel
  • Architecture: amd64
  • 1 dependencies
  • 1 optional deps
  • normalized package name match
  • Matched by: Gpp
Debian stable package indexes · deb.debian.org · Debian stable package indexes: gpp from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

gpp

nix profile install nixpkgs#gpp
  • normalized package name match
  • Matched by: Gpp
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/gp/gpp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

gpp 2.28-1

general-purpose preprocessor with customizable syntax

https://logological.org/gpp

sudo apt install gpp
  • Section: universe/devel
  • Architecture: amd64
  • 1 dependencies
  • normalized package name match
  • Matched by: Gpp
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: gpp from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
dnf95%

general-purpose-preprocessor 2.28-7.fc44

Customizable language-agnostic preprocessor

https://logological.org/gpp

sudo dnf install general-purpose-preprocessor
  • License: LGPL-3.0-or-later
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: general-purpose-preprocessor
  • 2 dependencies
  • 2 provides
  • normalized package name match
  • Matched by: Gpp
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: general-purpose-preprocessor from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
zypper95%

gpp 2.28-1.7

Generic Preprocessor

https://logological.org/gpp/

sudo zypper install gpp
  • License: LGPL-3.0+
  • Category: Development/Tools/Other
  • Architecture: x86_64
  • Source Package: gpp
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Gpp
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: gpp from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst
MacPorts95%

gpp

sudo port install gpp
  • normalized package name match
  • Matched by: Gpp
MacPorts ports tree · api.github.com · MacPorts ports tree: lang/gpp/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