pkg.soopen package index

brew / rank 7751

Install redo with Homebrew, MacPorts, Nix, pacman

Implements djb's redo: an alternative to make. Version 0.42d via Homebrew; verified 2026-09-18. Also installable with nix: nix profile install nixpkgs#redo.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install redo

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install redo

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

Linux

Nixverified · 92%
nix profile install nixpkgs#redo

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

Arch Linux pacmanverified · 92%
sudo pacman -S redo-python

Arch Linux sync databases · redo-python · source: geo.mirror.pkgbuild.com

overview

Package summary

Implements djb's redo: an alternative to make

Commands and aliases

  • redo
  • redo-always
  • redo-ifchange
  • redo-ifcreate
  • redo-log
  • redo-ood
  • redo-sources
  • redo-stamp
  • redo-targets
  • redo-unlocked
  • redo-whichdo

history

Project history and usage

redo is Avery Pennarun's implementation of Daniel J. Bernstein's recursive, general-purpose build-system design.

Project history

Daniel J. Bernstein originally described redo in undated notes about rebuilding targets when sources change but did not publish an implementation. Avery Pennarun later implemented this redo from scratch from Bernstein's design. The official history also identifies Alan Grosskurth's approximately 250-line shell implementation and master's research on top-down software rebuilding as an early related effort.

Adoption history

The supplied metadata records packages in Homebrew, MacPorts, Nix, and the Arch ecosystem, demonstrating adoption across several Unix-like package-manager communities. The official documentation also catalogs projects that use redo.

How it is used

Projects define builds with executable `.do` scripts. `redo` builds targets, while commands such as `redo-ifchange`, `redo-ifcreate`, `redo-always`, and `redo-stamp` express dynamic dependencies and rebuild behavior.

Why package nerds care

redo attracts build-system enthusiasts because dependencies are discovered by executable build scripts rather than maintained in a separate declarative graph. Its small conceptual core has inspired multiple independent implementations.

Timeline

  • Undated: Daniel J. Bernstein published design notes for redo without accompanying code.
  • Early implementation period: Alan Grosskurth implemented the design in shell while researching top-down rebuilding.
  • Later: Avery Pennarun wrote this implementation from scratch.
  • 2026: Homebrew, MacPorts, Nix, and Arch-family packages are recorded in the supplied metadata.

Related projects

  • redo is positioned as a competitor to Make. Other redo implementations and redoconf belong to the surrounding ecosystem documented by the project.

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 1 platform targets.
  • Installs with 1 runtime 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
<target-directory>/<target-name>.do<target-directory-or-ancestor>/default.<extension>.do<target-directory-or-ancestor>/default.do

executables

Installed executables

CommandKindExposureNote
redocliglobal executable
redo-alwayscliglobal executable
redo-ifchangecliglobal executable
redo-ifcreatecliglobal executable
redo-logcliglobal executable
redo-oodcliglobal executable
redo-sourcescliglobal executable
redo-stampcliglobal executable
redo-targetscliglobal executable
redo-unlockedcliglobal executable
redo-whichdocliglobal 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-09-19
manager version0.42d
manager updated2026-09-18
local dataok
upstreamnot checked
latest detectednot detected

https://github.com/apenwarr/redo

install metadata

Package metadata

Package keybrew:redo
Version0.42d
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/redo
Homepagehttps://redo.rtfd.io/
Repositoryhttps://github.com/apenwarr/redo
Upstream docshttps://redo.rtfd.io/
LicenseApache-2.0
Source archivehttps://github.com/apenwarr/redo/archive/refs/tags/redo-0.42d.tar.gz
Last updated2026-09-18T10:01:15Z
Pulseupdated
Dependenciespython@3.14
Bottleavailable (on all)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameredo
Version Scheme0
Revision3
Conflicts With
  • goredo
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • 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.

Nix95%

redo

nix profile install nixpkgs#redo
  • normalized package name match
  • Matched by: Redo
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/re/redo/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
pacman95%

redo-python 0.42.d-6

An implementation of the redo build system in Python

https://github.com/apenwarr/redo

sudo pacman -S redo-python
  • License: GPL
  • Architecture: any
  • 1 dependencies
  • 1 provides
  • 1 optional deps
  • normalized package name match
  • Matched by: Redo
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: redo-python from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
pacman95%

redo-sh 4.0.7-1

An implementation of the Redo build system in Bash

http://news.dieweltistgarnichtso.net/bin/redo-sh.html

sudo pacman -S redo-sh
  • License: AGPL-3.0-or-later
  • Architecture: any
  • 1 dependencies
  • 1 provides
  • 1 optional deps
  • normalized package name match
  • Matched by: Redo
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: redo-sh from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
MacPorts95%

redo

sudo port install redo
  • normalized package name match
  • Matched by: Redo
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/redo/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
  • 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
  • pkg.so package database
  • pkgdb category and tag curation