# Install waffle with Homebrew, apk, apt, dnf, Nix, zypper

C library for selecting an OpenGL API and window system at runtime. Version 1.8.3 via Homebrew; verified 2026-06-29.

## Install

```sh
sudo av install brew:waffle
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install waffle
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add waffle
```

  Evidence: Alpine Linux edge package indexes: waffle from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install libwaffle-1-0
```

  Evidence: Debian stable package indexes: libwaffle-1-0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install waffle
```

  Evidence: Fedora Rawhide package metadata: waffle from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#waffle
```

  Evidence: nixpkgs package indexes: pkgs/by-name/wa/waffle/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install libwaffle-1-0
```

  Evidence: openSUSE Tumbleweed package metadata: libwaffle-1-0 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:waffle
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/waffle>
- **Version:** 1.8.3
- **Source summary:** C library for selecting an OpenGL API and window system at runtime
- **Homepage:** <https://waffle.freedesktop.org/>
- **Repository:** <https://gitlab.freedesktop.org/mesa/waffle>
- **Upstream docs:** <https://waffle.freedesktop.org/>
- **License:** BSD-2-Clause
- **Source archive:** <https://waffle.freedesktop.org/files/release/waffle-1.8.3/waffle-1.8.3.tar.xz>
- **Last updated:** 2026-06-29T23:33:58Z
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- wflinfo (cli)
- wflinfo (alias)

## Build dependencies

- cmake
- docbook-xsl
- meson
- ninja
- pkgconf

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.8.3
- Package-manager updated: 2026-06-29
- Local data: ok
- Upstream repository: https://waffle.freedesktop.org/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Waffle is a small freedesktop.org graphics infrastructure library rather than an end-user application. Its purpose is to let a program choose an OpenGL API and native window-system binding at runtime, so the same test or tool can run against combinations such as GLX, X11/EGL, Wayland/EGL, GBM, surfaceless EGL, or experimental non-Linux backends.

### Project history

The project was public in the Mesa and Piglit orbit by 2012: the Waffle website records a presentation by Chad Versace at the 2012 X Developer's Conference, and the October 2012 Waffle 1.1.0 announcement described the library as API- and ABI-compatible with Waffle 1.0 while adding GBM, experimental Android support, and manpage documentation.

Waffle's upstream home is now the Mesa namespace on freedesktop.org GitLab. The older GitHub organization is kept as an archive and points contributors to the freedesktop.org repository, which matches Waffle's role as plumbing for Mesa-adjacent graphics testing rather than a standalone developer product.

### How it is used

Waffle is mainly used by graphics tests and diagnostics that need to create GL contexts without committing at build time to one window system. The accompanying `wflinfo` command is the visible CLI entry point, while library consumers use the C API to initialize a platform, choose a config, create contexts and windows, and, on selected platforms, retrieve backing native objects when they need behavior outside Waffle's abstraction.

### Why package nerds care

Its significance is niche but real: Waffle sits in the awkward layer between OpenGL APIs and native window systems, exactly where Mesa and Piglit need repeatable testing across driver stacks. Package maintainers tend to encounter it as a dependency of graphics conformance and regression-test tooling, not as a general-purpose GUI library.

### Timeline

- 2012: Waffle was presented at XDC 2012 and Waffle 1.1.0 was announced on the freedesktop.org Piglit and Mesa mailing lists.
- 2012 onward: the project focused on enabling Piglit to select GL API and window-system combinations at runtime.
- 2020s: development and issue tracking live under the Mesa project on freedesktop.org GitLab, with GitHub preserved as an archive.

### Related projects

- Piglit is the closest related project: Waffle's README and website both describe enabling Piglit, Mesa's OpenGL test suite, as the immediate goal. APITrace is also named in the README as a future-facing related tool for recording and replaying OpenGL calls across systems.

### Sources

- <https://github.com/waffle-gl>
- <https://gitlab.freedesktop.org/mesa/waffle/-/raw/master/README.md>
- <https://lists.freedesktop.org/archives/piglit/2012-October/003514.html>
- <https://waffle.freedesktop.org/>
- <https://waffle.freedesktop.org/features.html>


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** waffle
- **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:** head, stable

## Other Package-Manager Records

- Debian apt - libwaffle-1-0 - 1.8.1-1: normalized package name match | Debian stable package indexes: libwaffle-1-0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Waffle library (binaries) | https://waffle.freedesktop.org/
- Debian apt - libwaffle-dev - 1.8.1-1: normalized package name match | Debian stable package indexes: libwaffle-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Waffle library (development files) | https://waffle.freedesktop.org/
- Debian apt - libwaffle-doc - 1.8.1-1: normalized package name match | Debian stable package indexes: libwaffle-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Waffle library (documentation) | https://waffle.freedesktop.org/
- Debian apt - waffle-utils - 1.8.1-1: normalized package name match | Debian stable package indexes: waffle-utils from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Waffle library (utilities) | https://waffle.freedesktop.org/
- Nix - waffle: normalized package name match | nixpkgs package indexes: pkgs/by-name/wa/waffle/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libwaffle-1-0 - 1.8.0-2build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libwaffle-1-0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Waffle library (binaries) | https://waffle.freedesktop.org/
- Ubuntu apt - libwaffle-dev - 1.8.0-2build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libwaffle-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Waffle library (development files) | https://waffle.freedesktop.org/
- Ubuntu apt - libwaffle-doc - 1.8.0-2build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libwaffle-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Waffle library (documentation) | https://waffle.freedesktop.org/
- Ubuntu apt - waffle-utils - 1.8.0-2build1: normalized package name match | Ubuntu 24.04 LTS package indexes: waffle-utils from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Waffle library (utilities) | https://waffle.freedesktop.org/
- apk - waffle - 1.8.0-r0: normalized package name match | Alpine Linux edge package indexes: waffle from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | C library for selecting an OpenGL API and window system at runtime | https://gitlab.freedesktop.org/mesa/waffle
- apk - waffle-bash-completion - 1.8.0-r0: normalized package name match | Alpine Linux edge package indexes: waffle-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Bash completions for waffle | https://gitlab.freedesktop.org/mesa/waffle
- apk - waffle-dev - 1.8.0-r0: normalized package name match | Alpine Linux edge package indexes: waffle-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | C library for selecting an OpenGL API and window system at runtime (development files) | https://gitlab.freedesktop.org/mesa/waffle
- apk - waffle-doc - 1.8.0-r0: normalized package name match | Alpine Linux edge package indexes: waffle-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | C library for selecting an OpenGL API and window system at runtime (documentation) | https://gitlab.freedesktop.org/mesa/waffle
- apk - waffle-zsh-completion - 1.8.0-r0: normalized package name match | Alpine Linux edge package indexes: waffle-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Zsh completions for waffle | https://gitlab.freedesktop.org/mesa/waffle
- dnf - waffle - 1.8.1-1.fc44: normalized package name match | Fedora Rawhide package metadata: waffle from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Platform independent GL API layer | http://www.waffle-gl.org/releases.html
- dnf - waffle-devel - 1.8.1-1.fc44: normalized package name match | Fedora Rawhide package metadata: waffle-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development headers and libraries for waffle | http://www.waffle-gl.org/releases.html


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [docbook-xsl](https://www.automicvault.com/pkg/brew/docbook-xsl/) - Build dependency declared by Homebrew.
- [meson](https://www.automicvault.com/pkg/brew/meson/) - Build dependency declared by Homebrew.
- [ninja](https://www.automicvault.com/pkg/brew/ninja/) - Build dependency declared by Homebrew.
- [glslviewer](https://www.automicvault.com/pkg/brew/glslviewer/) - Shares av.db curated category or tags: cli, developer-tools, graphics, opengl.
- [glslang](https://www.automicvault.com/pkg/brew/glslang/) - Shares av.db curated category or tags: cli, developer-tools, graphics, opengl.
- [shaderc](https://www.automicvault.com/pkg/brew/shaderc/) - Shares av.db curated category or tags: cli, developer-tools, graphics.
- [vulkan-tools](https://www.automicvault.com/pkg/brew/vulkan-tools/) - Shares av.db curated category or tags: cli, developer-tools, graphics.
- [pixlet](https://www.automicvault.com/pkg/brew/pixlet/) - Shares av.db curated category or tags: cli, developer-tools, graphics.
- [spirv-cross](https://www.automicvault.com/pkg/brew/spirv-cross/) - Shares av.db curated category or tags: cli, developer-tools, graphics.
- [t1lib](https://www.automicvault.com/pkg/brew/t1lib/) - Shares av.db curated category or tags: c-library, cli, developer-tools, graphics.
- [termsvg](https://www.automicvault.com/pkg/brew/termsvg/) - Shares av.db curated category or tags: cli, developer-tools, graphics.
- [imake](https://www.automicvault.com/pkg/brew/imake/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, system.

## Combined YAML source

View the package source record on GitHub. [combined/waffle.yml](https://github.com/automic-vault/db/blob/main/combined/waffle.yml)


## Sources

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