Automic VaultAutomic Vault

brew

Install bsdiff with Homebrew, apt, dnf, MacPorts, Nix, zypper

Generate and apply patches to binary files. Version 4.3 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install bsdiff

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install bsdiff

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

Linux

Debian aptverified · 92%
sudo apt install bsdiff

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

Fedora dnfverified · 92%
sudo dnf install bsdiff

Fedora Rawhide package metadata · bsdiff · source: dl.fedoraproject.org

Nixverified · 92%
nix profile install nixpkgs#bsdiff

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

openSUSE zypperverified · 92%
sudo zypper install bsdiff

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

overview

Package summary

Generate and apply patches to binary files

Commands and aliases

  • bsdiff

history

Project history and usage

bsdiff and bspatch are Colin Percival's binary diff and patch tools, best known for producing small patches for executable files. The package is tiny, old, and still important because binary delta updates remain a core packaging and updater trick.

Project history

The official page describes bsdiff and bspatch as tools for building and applying binary patches. It explains that they use suffix sorting, specifically Larsson and Sadakane's qsufsort, and exploit the way executable files change to make much smaller patches than contemporary binary patch tools.

The same page says the programs were originally named `bdiff` and `bpatch`, but were renamed because many other programs used those names. It published version 4.3 as a tarball and identifies the BSDiff 4 algorithm with Percival's 2003 paper, `Naive differences of executable code`.

Adoption history

By the time version 4.2 was described on the official page, bsdiff was already in the FreeBSD, NetBSD, and OpenBSD ports trees, DarwinPorts, Gentoo, and as a Python extension module. The provided package facts show wider modern packaging across Homebrew, Debian, Fedora/dnf, MacPorts, Nix, Ubuntu, and openSUSE/zypper.

bsdiff also influenced the packaging and update world indirectly: binary delta algorithms of this style are natural fits for software update systems, where shaving patch size saves bandwidth and time.

How it is used

`bsdiff` compares an old file and a new file to produce a compact patch; `bspatch` applies that patch to reconstruct the new file. The package is most useful for compiled binaries and other files where line-oriented text diffs are ineffective.

The official page documents its resource profile: bsdiff is memory-hungry and runs in O((n+m) log n), while bspatch runs in O(n+m). That tradeoff is acceptable for many release pipelines because patch creation happens once, while patch application may happen many times.

Why package nerds care

bsdiff is package-nerd famous because it is a small command with an outsized effect on binary distribution. It gives maintainers a simple way to ship deltas instead of whole files, and its paper made the algorithm understandable enough to reimplement and adapt.

It is also a classic example of a package whose upstream is not a modern forge repository. Package managers preserve the tool through tarballs, patches, and downstream maintenance even without a canonical GitHub-style source-control home.

Timeline

  • 2003: Colin Percival describes the BSDiff 4 algorithm in `Naive differences of executable code`.
  • 2000s: Version 4.2 is available in FreeBSD, NetBSD, OpenBSD ports, DarwinPorts, Gentoo, and as a Python extension.
  • 2005: Version 4.3 is published on the official daemonology.net bsdiff page.
  • 2026: Provided package facts show bsdiff available across Homebrew, Debian, Fedora/dnf, MacPorts, Nix, Ubuntu, and openSUSE/zypper.

Related projects

  • bspatch is the companion patch-application utility shipped with bsdiff.
  • xdelta is the comparison tool named by the official page for binary delta compression.
  • RTPatch is the commercial binary patch tool named by the official page as another comparison point.
  • FreeBSD Update is historically associated with Colin Percival's binary-update work and the wider bsdiff ecosystem.

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 13 platform targets.
  • 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.

executables

Installed executables

CommandKindExposureNote
bsdiffcliglobal 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 version4.3
manager updated
local dataok
upstreamnot checked
latest detectednot detected

https://www.daemonology.net/bsdiff/

  • infoNo package-manager update timestamp was available.low confidence
  • infoRelease/tag comparison is only available for GitHub repositories.https://www.daemonology.net/bsdiff/none confidence

install metadata

Package metadata

Package keybrew:bsdiff
Version4.3
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/bsdiff
Homepagehttps://www.daemonology.net/bsdiff/
Upstream docshttps://www.daemonology.net/bsdiff
LicenseBSD-2-Clause
Source archivehttps://deb.debian.org/debian/pool/main/b/bsdiff/bsdiff_4.3.orig.tar.gz
Build dependenciesbmake
Uses from macOSbzip2
Bottleavailable (on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namebsdiff
Version Scheme0
Revision0
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.

Debian apt95%

bsdiff 4.3-23

generate/apply a patch between two binary files

https://www.daemonology.net/bsdiff

sudo apt install bsdiff
  • Section: utils
  • Architecture: amd64
  • 2 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Bsdiff
Debian stable package indexes · deb.debian.org · Debian stable package indexes: bsdiff from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

bsdiff

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

bsdiff 4.3-23

generate/apply a patch between two binary files

https://www.daemonology.net/bsdiff

sudo apt install bsdiff
  • Section: universe/utils
  • Architecture: amd64
  • 2 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Bsdiff
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: bsdiff from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
dnf95%

bsdiff 4.3-39.fc44

Binary diff/patch utility

http://www.daemonology.net/bsdiff/

sudo dnf install bsdiff
  • License: LicenseRef-Callaway-BSD
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: bsdiff
  • 3 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Bsdiff
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: bsdiff from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
zypper95%

bsdiff 4.3-6.9

Tools for binary file patches

https://daemonology.net/bsdiff

sudo zypper install bsdiff
  • License: BSD-2-Clause
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: bsdiff
  • 2 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Bsdiff
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: bsdiff from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst
MacPorts95%

bsdiff

sudo port install bsdiff
  • normalized package name match
  • Matched by: Bsdiff
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/bsdiff/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
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment