macOS
brew install tuplocal Homebrew formula metadata
sudo port install tupMacPorts ports tree · devel/tup/Portfile · source: api.github.com
brew
File-based build system. Version 0.8 via Homebrew; verified from local package data.
install
brew install tuplocal Homebrew formula metadata
sudo port install tupMacPorts ports tree · devel/tup/Portfile · source: api.github.com
sudo apk add tupAlpine Linux edge package indexes · tup · source: dl-cdn.alpinelinux.org
sudo apt install tupDebian stable package indexes · tup · source: deb.debian.org
nix profile install nixpkgs#tupnixpkgs package indexes · pkgs/by-name/tu/tup/package.nix · source: api.github.com
sudo pacman -S tupArch Linux sync databases · tup · source: geo.mirror.pkgbuild.com
sudo zypper install tupopenSUSE Tumbleweed package metadata · tup · source: download.opensuse.org
scoop install main/tupScoop official bucket manifest trees · bucket/tup.json · source: api.github.com
overview
File-based build system
history
tup is a file-based build system that models a project as changed files plus a directed acyclic graph, then updates only the outputs affected by those changes.
tup was published as an alternative to traditional build tools whose rebuild cost depends heavily on scanning files and manually maintained dependencies. The official README and homepage describe it as a build system for Linux, macOS, and Windows that takes a list of file changes and a DAG, then executes the commands needed to update dependent files with very little overhead.
The project has been public on GitHub since 2011, but its official site keeps the older research-oriented framing alive: the navigation links to the manual, examples, Make-vs-tup comparisons, a Lua parser, and the Build System Rules and Algorithms PDF. The manual presents `tup` as the primary command, `tup init` as the creator of the `.tup` database, and Tupfiles as the place where projects describe how source files become outputs.
Unlike build front ends such as CMake, tup is itself the dependency-tracking updater. Its manual emphasizes that it has no domain-specific knowledge: C, generated files, and other build products are expressed through Tupfiles, while tup handles the graph, changed-file detection, parallel jobs, environment checking, and optional file monitoring.
tup remained a specialist build-system choice rather than a universal default, but it achieved unusually broad package-manager coverage for a niche developer tool. The supplied package metadata lists packages in apk, Homebrew, Debian, MacPorts, Nix, pacman, Scoop, Ubuntu, and zypper.
Its adoption history is tied to developers who care about exact incremental builds, generated dependency graphs, and avoiding unnecessary work. The official manual's examples and comparisons position tup in the same conversation as Make-like tools, but with a stronger focus on automatic dependency knowledge and fast no-op updates.
In day-to-day use, a developer initializes a tup hierarchy with `.tup` or a root `Tupfile.ini`, writes `Tupfile` rules, and runs `tup` to bring outputs up to date. The manual notes that `tup` can be run from anywhere in the hierarchy and will update requested outputs or the whole project.
For package-manager users, tup is a compact CLI that installs beside compilers and editors. It is often evaluated by people who are already dissatisfied with Makefile dependency drift or build-system scans, and who are comfortable adopting a declarative graph-oriented build workflow.
tup matters in the package-nerd niche because it is a long-lived, packaged build-system experiment with a clear thesis: rebuild correctness and speed should come from the updater knowing the file graph, not from every project hand-maintaining perfect dependency lists.
It is also a useful package-index signal for build-tool archaeology. Seeing tup in Homebrew, Linux distributions, Nix, Scoop, and other managers marks it as a tool that remained interesting enough for cross-platform packagers even without becoming the dominant build system.
security posture
generalized runtime or code generation signal.
yellow risk · medium confidence · runtime
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.
TupfileTupfile.ini.tup/executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
tup | 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:tup |
|---|---|
| Version | 0.8 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/tup |
| Homepage | https://gittup.org/tup/ |
| Repository | https://github.com/gittup/tup |
| Upstream docs | https://gittup.org/tup |
| License | GPL-2.0-only |
| Source archive | https://github.com/gittup/tup/archive/refs/tags/v0.8.tar.gz |
| Dependencies | libfuse |
| Build dependencies | pkgconf |
| Bottle | available (on arm64_linux, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | tup |
| Version Scheme | 0 |
| Revision | 1 |
| Head Version | HEAD |
| Requirements |
|
| 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.
tup 0.8-1+b1
fast build system
sudo apt install tuptup
nix profile install nixpkgs#tuptup 0.7.11-4
fast build system
sudo apt install tuptup 0.7.11-r1
A file-based build system
sudo apk add tuptup-doc 0.7.11-r1
A file-based build system (documentation)
sudo apk add tup-doctup-vim 0.7.11-r1
tup (vim syntax)
sudo apk add tup-vimtup 0.8-3
A fast, file-based build system
http://gittup.org/tup/index.html
sudo pacman -S tuptup 0.8-1.9
File-based build system
sudo zypper install tuptup-doc 0.8-1.9
Documentation for tup
sudo zypper install tup-doctup
sudo port install tupmain/tup
scoop install main/tupsource 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.