Automic VaultAutomic Vault

brew

Install tup with Homebrew, apk, apt, MacPorts, Nix, pacman, scoop, zypper

File-based build system. Version 0.8 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install tup

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install tup

MacPorts ports tree · devel/tup/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add tup

Alpine Linux edge package indexes · tup · source: dl-cdn.alpinelinux.org

Debian aptverified · 92%
sudo apt install tup

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

Nixverified · 92%
nix profile install nixpkgs#tup

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

Arch Linux pacmanverified · 92%
sudo pacman -S tup

Arch Linux sync databases · tup · source: geo.mirror.pkgbuild.com

openSUSE zypperverified · 92%
sudo zypper install tup

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

Windows

Scoopverified · 92%
scoop install main/tup

Scoop official bucket manifest trees · bucket/tup.json · source: api.github.com

overview

Package summary

File-based build system

Commands and aliases

  • tup

history

Project history and usage

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.

Project history

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.

Adoption history

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.

How it is used

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.

Why package nerds care

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.

Timeline

  • 2011: Official GitHub repository created.
  • 2011: Early v0.1 tag recorded in the official GitHub tag list.
  • 2024: Official manual page updated date shows continued maintenance of command documentation.
  • 2026: GitHub repository metadata shows recent activity and continued public maintenance.

Related projects

  • Make
  • Ninja
  • CMake
  • SCons
  • redo
  • Lua

Sources

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:build system

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 2 platform targets.
  • Installs with 1 runtime dependencies.
  • Build metadata lists 1 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

local files

Configuration and credential file locations

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.

Configuration files

Config paths the tool may read or write during local use.

Unix
TupfileTupfile.ini.tup/

executables

Installed executables

CommandKindExposureNote
tupcliglobal 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 version0.8
manager updated
local dataok
upstreamcurrent
latest detectedv0.8

https://github.com/gittup/tup

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:tup
Version0.8
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/tup
Homepagehttps://gittup.org/tup/
Repositoryhttps://github.com/gittup/tup
Upstream docshttps://gittup.org/tup
LicenseGPL-2.0-only
Source archivehttps://github.com/gittup/tup/archive/refs/tags/v0.8.tar.gz
Dependencieslibfuse
Build dependenciespkgconf
Bottleavailable (on arm64_linux, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nametup
Version Scheme0
Revision1
Head VersionHEAD
Requirements
  • linux
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%

tup 0.8-1+b1

fast build system

https://gittup.org/tup

sudo apt install tup
  • Section: devel
  • Architecture: amd64
  • Source Package: tup
  • 6 dependencies
  • normalized package name match
  • Matched by: Tup
Debian stable package indexes · deb.debian.org · Debian stable package indexes: tup from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

tup

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

tup 0.7.11-4

fast build system

http://gittup.org/tup

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

tup 0.7.11-r1

A file-based build system

http://gittup.org/tup

sudo apk add tup
  • License: GPL-2.0-only
  • Architecture: x86_64
  • Source Package: tup
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Tup
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: tup from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
apk95%

tup-doc 0.7.11-r1

A file-based build system (documentation)

http://gittup.org/tup

sudo apk add tup-doc
  • License: GPL-2.0-only
  • Architecture: x86_64
  • Source Package: tup
  • normalized package name match
  • Matched by: Tup
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: tup-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
apk95%

tup-vim 0.7.11-r1

tup (vim syntax)

http://gittup.org/tup

sudo apk add tup-vim
  • License: GPL-2.0-only
  • Architecture: x86_64
  • Source Package: tup
  • normalized package name match
  • Matched by: Tup
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: tup-vim from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
pacman95%

tup 0.8-3

A fast, file-based build system

http://gittup.org/tup/index.html

sudo pacman -S tup
  • License: GPL-2.0-only
  • Architecture: x86_64
  • 3 dependencies
  • normalized package name match
  • Matched by: Tup
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: tup from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
zypper95%

tup 0.8-1.9

File-based build system

http://gittup.org/tup/

sudo zypper install tup
  • License: GPL-2.0-only
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: tup
  • 5 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Tup
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: tup from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst
zypper95%

tup-doc 0.8-1.9

Documentation for tup

http://gittup.org/tup/

sudo zypper install tup-doc
  • License: GPL-2.0-only
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: tup
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Tup
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: tup-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst
MacPorts95%

tup

sudo port install tup
  • normalized package name match
  • Matched by: Tup
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/tup/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
Scoop95%

main/tup

scoop install main/tup
  • normalized package name match
  • Matched by: Tup
Scoop official bucket manifest trees · api.github.com · Scoop official bucket manifest trees: bucket/tup.json from https://api.github.com/repos/ScoopInstaller/Main/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 configuration and credential file locations
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment