macOS
brew install hpacklocal Homebrew formula metadata
brew
Modern format for Haskell packages. Version 0.39.6 via Homebrew; verified 2026-06-13.
install
brew install hpacklocal Homebrew formula metadata
sudo apt install hpackDebian stable package indexes · hpack · source: deb.debian.org
nix profile install nixpkgs#hpacknixpkgs package indexes · hpack · source: raw.githubusercontent.com
overview
Modern format for Haskell packages
history
hpack is a Haskell packaging tool and package-description format built around `package.yaml`. It generates Cabal files while trying to reduce repetition and make common package metadata less verbose.
Simon Hengel's hpack appeared on Hackage in April 2015 with version 0.1.0. The project README describes it as a modern alternative to the Cabal package format, guided by three principles: infer obvious information, give users control when needed, and avoid repeating metadata.
hpack developed alongside Cabal rather than replacing it. The executable reads `package.yaml` and renders a `.cabal` file, while its changelog tracks years of Cabal compatibility work: SPDX license handling, generated module behavior, internal libraries, `build-tool-depends`, Cabal version inference, and support for newer GHC and Cabal releases.
The README documents native `package.yaml` support in Stack and cabal2nix, while Hackage lists reverse dependencies including stack, pantry, cabal2nix, stack2cabal, stack-lib, and stackage2nix. That places hpack in the machinery around Haskell project templates, Stackage snapshots, and Nix conversion.
Homebrew, Hackage, Stackage, and Linux distribution packaging make hpack available both as a Haskell library/program and as a standalone CLI. Its adoption is tied to `package.yaml` becoming a common Haskell project file, especially in Stack-oriented projects.
Users write package metadata in `package.yaml`. Stack can consume that file directly, cabal2nix supports it natively, and other workflows can run `hpack` to generate the `.cabal` file before building.
hpack also supports practical package-authoring features such as defaults files, globbing, verbatim Cabal fields, generated module controls, common fields, conditionals, executables, tests, benchmarks, and dependency syntax intended to keep package descriptions maintainable.
hpack is important because it sits at the contested boundary between package metadata as a human-maintained source file and package metadata as generated build-tool input. Package nerds care about that boundary: generated `.cabal` files can reduce repetition, but they also introduce questions about source-of-truth, reproducibility, diffs, and downstream tooling.
Its long changelog is also a miniature history of Haskell packaging pressure points, from SPDX licenses and Cabal version syntax to generated modules and compatibility with Stack, Stackage, Nix, and newer Cabal releases.
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.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
package.yamlexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
hpack | 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:hpack |
|---|---|
| Version | 0.39.6 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/hpack |
| Homepage | https://github.com/sol/hpack |
| Repository | https://github.com/sol/hpack |
| Upstream docs | https://github.com/sol/hpack#readme |
| License | MIT |
| Source archive | https://hackage.haskell.org/package/hpack-0.39.6/hpack-0.39.6.tar.gz |
| Last updated | 2026-06-13T23:34:58+02:00 |
| Pulse | updated |
| Dependencies | gmp |
| Build dependencies | cabal-install, ghc |
| Uses from macOS | libffi |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | hpack |
| 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.
hpack 0.36.1-1+b1
alternative format for Haskell packages
https://github.com/sol/hpack#readme
sudo apt install hpackhpack
nix profile install nixpkgs#hpackhpack 0.35.2-1
alternative format for Haskell packages
https://github.com/sol/hpack#readme
sudo apt install hpacksource 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.