Simplify deb/brew packages to thin wrappers around pip install

Remove all non-essential dependencies from both package formats.
The .deb now only depends on python3, pip, and venv. The brew
formula only depends on python@3.13. All other runtime deps
(node, chrome, yt-dlp, wget, ripgrep, etc.) are installed
on-demand by `archivebox install` at runtime.

Removed from brew formula:
- 6 depends_on entries (node, git, wget, curl, ripgrep, yt-dlp)
- on_linux block (pkg-config, openssl, libffi)
- post_install hook (was running archivebox install)
- service block (users run archivebox server directly)

Removed from .deb:
- 6 depends entries (nodejs, npm, git, wget, curl, ripgrep)
- recommends section (yt-dlp, ffmpeg, chromium)

Net: -126 lines across packaging files.

https://claude.ai/code/session_01Vx1EsNrNySgsc8Y67dGzCn
This commit is contained in:
Claude
2026-03-15 03:56:39 +00:00
parent 0fac8a7346
commit 82932812ae
5 changed files with 13 additions and 139 deletions

View File

@@ -108,7 +108,7 @@ jobs:
- name: Install system dependencies
run: |
sudo apt-get install -y python3.13 python3.13-venv python3-pip nodejs npm git wget curl ripgrep
sudo apt-get install -y python3.13 python3.13-venv python3-pip
- name: Pre-seed virtualenv with local wheel before dpkg install
run: |

View File

@@ -87,18 +87,6 @@ class Archivebox < Formula
license "MIT"
depends_on "python@3.13"
depends_on "node"
depends_on "git"
depends_on "wget"
depends_on "curl"
depends_on "ripgrep"
depends_on "yt-dlp"
on_linux do
depends_on "pkg-config" => :build
depends_on "openssl@3"
depends_on "libffi"
end
${RESOURCES}
@@ -106,21 +94,6 @@ ${RESOURCES}
virtualenv_install_with_resources
end
def post_install
(var/"archivebox").mkpath
with_env(DATA_DIR: var/"archivebox") do
system bin/"archivebox", "install", "--binproviders", "pip,npm"
end
end
service do
run [opt_bin/"archivebox", "server", "--quick-init", "0.0.0.0:8000"]
keep_alive crashed: true
working_dir var/"archivebox"
log_path var/"log/archivebox.log"
error_log_path var/"log/archivebox.log"
end
test do
assert_match version.to_s, shell_output("#{bin}/archivebox version")
end
@@ -148,11 +121,7 @@ RUBY
echo "$HOMEBREW_PREFIX/sbin" >> "$GITHUB_PATH"
- name: Install brew dependencies
run: |
brew install python@3.13 node git wget curl ripgrep yt-dlp
if [ "$RUNNER_OS" = "Linux" ]; then
brew install pkg-config openssl@3 libffi
fi
run: brew install python@3.13
- name: Install archivebox via brew from local formula
run: |
@@ -256,18 +225,6 @@ class Archivebox < Formula
head "https://github.com/ArchiveBox/ArchiveBox.git", branch: "dev"
depends_on "python@3.13"
depends_on "node"
depends_on "git"
depends_on "wget"
depends_on "curl"
depends_on "ripgrep"
depends_on "yt-dlp"
on_linux do
depends_on "pkg-config" => :build
depends_on "openssl@3"
depends_on "libffi"
end
${RESOURCES}
@@ -275,21 +232,6 @@ ${RESOURCES}
virtualenv_install_with_resources
end
def post_install
(var/"archivebox").mkpath
with_env(DATA_DIR: var/"archivebox") do
system bin/"archivebox", "install", "--binproviders", "pip,npm"
end
end
service do
run [opt_bin/"archivebox", "server", "--quick-init", "0.0.0.0:8000"]
keep_alive crashed: true
working_dir var/"archivebox"
log_path var/"log/archivebox.log"
error_log_path var/"log/archivebox.log"
end
test do
assert_match version.to_s, shell_output("#{bin}/archivebox version")
end

View File

@@ -54,12 +54,8 @@ echo "[+] Updating formula file: $FORMULA_FILE"
# Build the formula from the template
cat > "$FORMULA_FILE" << RUBY
# This formula is auto-generated by bin/build_brew.sh using homebrew-pypi-poet.
# To update: run bin/build_brew.sh, or trigger the GitHub Actions homebrew workflow.
#
# Users install with:
# brew tap archivebox/archivebox
# brew install archivebox
# Auto-generated by bin/build_brew.sh using homebrew-pypi-poet.
# Users install with: brew tap archivebox/archivebox && brew install archivebox
class Archivebox < Formula
include Language::Python::Virtualenv
@@ -72,18 +68,8 @@ class Archivebox < Formula
head "https://github.com/ArchiveBox/ArchiveBox.git", branch: "dev"
depends_on "python@3.13"
depends_on "node"
depends_on "git"
depends_on "wget"
depends_on "curl"
depends_on "ripgrep"
depends_on "yt-dlp"
on_linux do
depends_on "pkg-config" => :build
depends_on "openssl@3"
depends_on "libffi"
end
# All other runtime deps (node, chrome, yt-dlp, etc.) are installed
# on-demand by \`archivebox install\` and should NOT be declared here.
# Python dependency resource blocks auto-generated by homebrew-pypi-poet
# AUTOGENERATED_RESOURCES_START
@@ -94,20 +80,6 @@ ${RESOURCES}
virtualenv_install_with_resources
end
def post_install
# Install runtime dependencies (plugins, JS extractors, etc.)
(var/"archivebox").mkpath
system({ "DATA_DIR" => var/"archivebox" }, bin/"archivebox", "install", "--binproviders", "pip,npm")
end
service do
run [opt_bin/"archivebox", "server", "--quick-init", "0.0.0.0:8000"]
keep_alive crashed: true
working_dir var/"archivebox"
log_path var/"log/archivebox.log"
error_log_path var/"log/archivebox.log"
end
test do
assert_match version.to_s, shell_output("#{bin}/archivebox version")
end

View File

@@ -1,9 +1,5 @@
# This formula is auto-generated by bin/build_brew.sh using homebrew-pypi-poet.
# To update: run bin/build_brew.sh, or trigger the GitHub Actions homebrew workflow.
#
# Users install with:
# brew tap archivebox/archivebox
# brew install archivebox
# Auto-generated by bin/build_brew.sh using homebrew-pypi-poet.
# Users install with: brew tap archivebox/archivebox && brew install archivebox
class Archivebox < Formula
include Language::Python::Virtualenv
@@ -16,21 +12,10 @@ class Archivebox < Formula
head "https://github.com/ArchiveBox/ArchiveBox.git", branch: "dev"
depends_on "python@3.13"
depends_on "node"
depends_on "git"
depends_on "wget"
depends_on "curl"
depends_on "ripgrep"
depends_on "yt-dlp"
# All other runtime deps (node, chrome, yt-dlp, etc.) are installed
# on-demand by `archivebox install` and should NOT be declared here.
on_linux do
depends_on "pkg-config" => :build
depends_on "openssl@3"
depends_on "libffi"
end
# Python dependency resource blocks are auto-generated by bin/build_brew.sh
# using homebrew-pypi-poet. Run that script to populate this section.
# Python dependency resource blocks auto-generated by homebrew-pypi-poet
# AUTOGENERATED_RESOURCES_START
# AUTOGENERATED_RESOURCES_END
@@ -38,22 +23,6 @@ class Archivebox < Formula
virtualenv_install_with_resources
end
def post_install
# Install runtime dependencies (plugins, JS extractors, etc.)
(var/"archivebox").mkpath
with_env(DATA_DIR: var/"archivebox") do
system bin/"archivebox", "install", "--binproviders", "pip,npm"
end
end
service do
run [opt_bin/"archivebox", "server", "--quick-init", "0.0.0.0:8000"]
keep_alive crashed: true
working_dir var/"archivebox"
log_path var/"log/archivebox.log"
error_log_path var/"log/archivebox.log"
end
test do
assert_match version.to_s, shell_output("#{bin}/archivebox version")
end

View File

@@ -25,17 +25,8 @@ depends:
- python3 (>= 3.11)
- python3-pip
- python3-venv
- nodejs
- npm
- git
- wget
- curl
- ripgrep
recommends:
- yt-dlp
- ffmpeg
- chromium | chromium-browser | google-chrome-stable
# All other runtime deps (node, chrome, yt-dlp, etc.) are installed on-demand
# by `archivebox install` and should NOT be declared as package dependencies.
contents:
# Wrapper script for /usr/bin/archivebox